list的使用

来源:互联网 发布:哪个软件可以看韩剧 编辑:程序博客网 时间:2024/05/21 01:54
#include<iostream>#include<list>using namespace std;//链表的每个元素都是一个listvoid main4d(){list<int>mylist1{ 5, 3, 2, 9 };list<int>mylist2{ 1, 23, 5, 2 };list<int>mylist3{ 11, 123, 15, 12 };list<list<int>>mylist{ mylist1, mylist2, mylist3 };//链表的每个元素都是一个listlist<list<list<int>>>mylistall{};//可以这样无限嵌套for (auto j : mylist){for (auto i : j){cout << i << "  ";}cout << endl;}cin.get();}void main3c(){list<int>mylist1{ 5, 3, 2, 9 };list<int>mylist2{ 1, 23, 5, 2 };mylist1.swap(mylist2);//互换for (auto i : mylist1){cout << i << endl;}cout << endl;for (auto i : mylist2){cout << i << endl;}cout << endl;mylist1.sort();mylist2.sort();mylist2.merge(mylist1);// 合并要排序,否则会报错。for (auto i : mylist2){cout << i << endl;}cin.get();}void main2b(){list<int>mylist{ 1, 2, 3, 4, 5,88,99,33,44,11,6 };list<int>mylist1{ 1, 2, 3, 4, 5, 88, 99, 33, 44, 11, 6 };for (auto ib = mylist.begin(), ie = mylist.end(); ib != ie; ib++){//if (*ib == 3)//{////插入//mylist.insert(ib,1234);//}if (*ib == 4){//删除mylist.erase(ib);//为什么要跳出本次循环呢?//因为删除后,链表的下个节点发生了变化。break;}}mylist.pop_back();//删除尾部mylist.pop_front();//删除头部mylist.reverse();//反转mylist.sort();//排序for (auto ib = mylist.begin(), ie = mylist.end(); ib != ie; ib++){cout << *ib << endl;}cin.get();}void main1A(){list<int> mylist{ 1, 2, 3, 4, 5, 6 };mylist.push_back(10);//尾部插入 10mylist.push_front(11);//头部插入//for (auto i : mylist)//{//cout << i << endl;//}//cout<< endl;//mylist.assign(3, 5);//重新初始化链表,填充数据为 5//for (auto i : mylist)//{//cout << i << endl;//}//使用迭代器循环内容 ,即指针  正向迭代 for (auto ib = mylist.begin(), ie = mylist.end(); ib != ie; ib++){cout << *ib << endl;}cout << endl;//使用迭代器循环内容 ,即指针  反向迭代 for (auto rb = mylist.rbegin(), re = mylist.rend(); rb != re; rb++){cout << *rb << endl;}cout << "第一个:" << mylist.front() << endl;cout << "最后一个:" << mylist.back() << endl;cout << "个数:" << mylist.size() << endl;mylist.clear();//清空链表cin.get();}

0 0
原创粉丝点击