#include #include using namespace std; ostream& operator<<(ostream& out, const list& li); int main() { // Constructors list li1; list li2(5); list li3(5,19); list li4{2,3,5,7,11,13,17}; cout << "li2=" << li2 << endl; cout << "li3=" << li3 << endl; cout << "li4=" << li4 << endl << endl; // list li5(li4.begin(),li4.begin()+3); ERROR list li5(li4.begin(),++++++li4.begin()); // ??? list li6(li4); list li7(move(li4)); cout << "li4=" << li4 << endl; cout << "li5=" << li5 << endl; cout << "li6=" << li6 << endl; cout << "li7=" << li7 << endl << endl; cout << "capacity functions" << endl; cout << li1.size() << ' ' << boolalpha << li1.empty() << endl; cout << endl << "access functions" << endl; cout << "li6.front()=" << li6.front() << endl; cout << "li6.back()=" << li6.back() << endl; cout << endl << "iterator functions" << endl; cout << "*li6.begin()=" << *li6.begin() << endl; cout << "*++li6.begin()=" << *++li6.begin() << endl; cout << "*--li6.end()=" << *--li6.end() << endl; cout << "*li6.rbegin()=" << *li6.rbegin() << endl; cout << "*++li6.rbegin()=" << *++li6.rbegin() << endl; cout << "*--li6.rend()=" << *--li6.rend() << endl; cout << endl << "assign" << endl; li1.assign({7,6,5,4,3,2,1}); cout << "li1=" << li1 << endl; li2.assign(++li1.crbegin(),--li1.crend()); cout << "li2=" << li2 << endl; li3.assign(5,7); cout << "li3=" << li3 << endl << endl; cout << "erase" << endl; li2.erase(++li2.begin()); cout << "li2=" << li2 << endl; li1.erase(++li1.begin(),--li1.end()); cout << "li1=" << li1 << endl << endl; cout << "insert" << endl; li2.insert(++li2.begin(),3); cout << "li2=" << li2 << endl; li2.insert(++li2.begin(),li3.begin(),li3.end()); cout << "li2=" << li2 << endl << endl; cout << "push_front / pop_back" << endl; li1.push_front(1); li1.pop_back(); cout << "li1=" << li1 << endl << endl; cout << "swap" << endl; li1.swap(li2); cout << "li1=" << li1 << endl << endl; cout << "resize" << endl; li1.resize(5); cout << "li1=" << li1 << endl; li1.resize(10); cout << "li1=" << li1 << endl; } ostream& operator<<(ostream& out, const list& li) { for (auto element : li) out << element << ' '; return out; }