List with iterator(链表的迭代器实现)
我们都知道STL容器内部都有相应的迭代器,本文主要讨论的就是链表内部的迭代器实现。
测试代码
#include <iostream>
#include <string>
using namespace std;
int main() {
list<int> li;
cout << "test size" << endl;
cout << li.size() << endl;
cout << (li.empty() ? "empty" : "not empty") << endl;
int n; // n >= 3
cout << "test push and pop" << endl;
li.push_back(1);
cout << li << endl;
li.pop_back();
cout << li << endl;
li.push_front(1);
cout << li << endl;
li.pop_front();
cout << li << endl;
li.push_back(1);
cout << li << endl;
li.pop_front();
cout << li << endl;
li.push_front(1);
cout << li << endl;
li.pop_back();
cin >> n;
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
li.push_back(tmp);
li.push_front(tmp);
}
cout << li.size() << endl;
cout << li << endl;
li.pop_back();
li.pop_front();
li.pop_front();
cout << li << endl;
cout << "front : " << li.front() << endl;
cout << "back : " << li.back() << endl;
cout << (li.empty() ? "empty" :