std::string DoTestFrontBack(size_t n) { TCounter::Reset(); { constexpr int M = 10; TCounter data[M]; TList<TCounter, std::allocator<TCounter>> lst; for (size_t i = 0; i < n; ++i) { lst.push_back(TCounter(data[i % M])); } if (lst.size() != n) return "lst.size(): wrong answer"; if (lst.back().GetData() != data[(n + M - 1) % M].GetData()) return "lst.back(): wrong answer"; if (lst.front().GetData() != data[0].GetData()) return "lst.front(): wrong answer"; while (!lst.empty()) lst.pop_back(); for (size_t i = 0; i < n; ++i) { lst.push_front(TCounter(data[i % M])); } if (lst.size() != n) return "lst.size(): wrong answer"; if (lst.front().GetData() != data[(n + M - 1) % M].GetData()) return "lst.back(): wrong answer"; if (lst.back().GetData() != data[0].GetData()) return "lst.front(): wrong answer"; while (!lst.empty()) lst.pop_front(); } TCounter::CheckTotalOperationsCount(n * 10 + 100, n + 100); return TCounter::GetAllErrors(); }
int main(int argc, char *argv[]) { int i, x; TList<int> L; for (i = 0; i < 10; ++i) { x = i*i; L.push_front(x); // mit Quadratzahlen füllen } TList<int>::Iterator ListIter(L); cout << "*ListIter = " << *ListIter << endl; cout << "ListIter++;" << endl; ListIter++; cout << "*ListIter = " << *ListIter << endl; // 36 löschen, falls vorhanden while(ListIter++ != L.end()) if (*ListIter == 36) { cout << *ListIter << " wird geloescht\n"; L.erase(ListIter); cout << *ListIter << " an aktueller Position\n"; break; } int target = 3; int count = 0; TList<int>::Iterator it = L.begin(); while (it != L.end()) { if (count == target) { std::cout << "bam" << *it << std::endl; } count++; it++; } //for (TList<int>::Iterator iter = L.begin(); iter != L.end(); i++) { // std::cout << *iter << std::endl; //} //TList<int>::Iterator it = L.begin(); //while (it != L.end()) { // std::cout << *it << std::endl; // it++; //} for (TList<int>::Iterator itt = L.begin(); itt != L.end(); ++itt) { std::cout << *itt << " "; } return 0; }