#include
#include//双向链表
using namespace std;
void printListInt(list & q) {
list::iterator it = q.begin();
for (; it != q.end(); it++)
cout << *it << " ";
cout << endl;
}
void test1() {
list q;
q.push_back(1);//尾插
q.push_back(2);
q.push_back(3);
q.push_front(4);//头插
q.push_front(5);
q.push_front(6);
//打印
cout << "大小:" << q.size() << endl;
printListInt(q);
q.pop_back();//尾删
q.pop_front();//头删
//打印
cout << "\n删除后大小:" << q.size() << endl;
printListInt(q);
cout << *it << endl;
}
int main() {
test1();
return 0;
}
it 不能+ 加一个数,不识别+运算符;
list容器迭代器是双向迭代器,,不支持 + int,支持++;
vector、deque是随机迭代器,支持 + int,相当于下标后移 int;
*it + 2;//返回值被忽略;
加2 后,首元素输出值还是没变;
it++;//是允许的,相当于指针后移一次;
it++后,输出为第二个元素值;
//STL提供的算法,只支持随机访问迭代器,而list是双向迭代器,所以sort不支持list
//sort(q.begin(),q.end());//报错
要用 q.sort();
//STL提供的算法,只支持随机访问迭代器,而list是双向迭代器,所以sort不支持list
//sort(q.begin(),q.end());//报错
q.sort();
cout << "\n排序后: " << endl;
printListInt(q);
反转
q.reverse();