#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<cstdlib> #include<fstream> #include<time.h> #include<list> using namespace std; typedef long long LL; const LL mod=1e9+7; const LL INF=1e9+7; const int maxn=1e5+50; int main() { list<int>b;//构建一个空list cout<<b.empty()<<endl;//输出 1 list<int>a(10,1);//定义10个整形元素向量 初值都为1 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出十个1 } cout<<endl; list<int>c(a);//把list a 全部赋值给 c for(list<int>::iterator it=c.begin();it!=c.end();it++) { cout<<*it<<" ";//输出十个1 } cout<<endl; cout<<a.size()<<endl;//大小 a.resize(5);//调整a的大小为5 cout<<a.size()<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 }cout<<endl; a.resize(10,2);//调整a的大小为10 多则删 少则补2 cout<<a.size()<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 5个2 }cout<<endl; a.push_back(3);// 尾部插入3 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出5个1 5个2 一个3 }cout<<endl; a.insert(a.begin(),5);//指定位置前插入一个数 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个5 5个1 5个2 一个3 }cout<<endl; a.insert(a.begin(),3,6);//在 指定位置前插入3个6 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.push_front(7);//头部插入一个元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.erase(a.begin());//删除指定位置元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";//输出一个7 三个6 一个5 5个1 5个2 一个3 }cout<<endl; a.erase(a.begin(),a.end());//删除两个迭代器之间的元素 for(int i=1;i<=10;i++) { a.push_back(i); } list<int>::iterator pos; pos=a.begin(); cout<<*pos<<endl;//输出1 advance(pos,5);//给迭代器指定一个位置 cout<<*pos<<endl;// a.pop_back();//删除尾部元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.pop_front();//删除头部元素 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.assign(10,100);//重新赋值 以前的清空 赋值10个100 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; cout<<a.front()<<endl;//返回第一个数 cout<<a.back()<<endl;//返回最后一个数 a.clear();//清空链表 a.assign(10,5); b.assign(10,6); for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; a.swap(b);//交换两个链表的内容 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; a.clear(); for(int i=1;i<=5;i++) { a.push_back(i); } b.clear(); for(int i=1;i<=5;i++) { b.push_back(i*10); } pos=a.begin(); ++pos; a.splice(pos,b);//在指定位置前插入b链表 并且把b链表变为空 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; b.splice(b.begin(),a,pos);//将a的第pos个位置的数赋值给b 同时a中删除这个元素 for(list<int>::iterator it=b.begin();it!=b.end();it++) { cout<<*it<<" ";// }cout<<endl; for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.reverse();//反转 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.sort();//从小到大排序 for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; a.unique();//删除重复元素 a.merge(b); for(list<int>::iterator it=a.begin();it!=a.end();it++) { cout<<*it<<" ";// }cout<<endl; return 0; }