版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34784043/article/details/82906346
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> list1;
//返回链表能够存储的元素数目
cout << list1.max_size() << endl;
//向list1中放元素
for( int i=0; i<10; i++ ){
list1.push_back(i);
}
//用list1给list2初始化
list<int> list2(list1.begin(), list1.end());
//遍历list2
list<int>::iterator iter;
for( iter=list2.begin(); iter!=list2.end(); iter++){
cout << *iter << " ";
}
cout << endl;
//删除list2的所有元素
list2.clear();
//显示list2中元素的个数
cout << list2.size() << endl;
//给list2重新赋值
list2.assign(10,0);
//删除迭代器指向位置的元素
list2.erase(list2.begin());
//向list2中插入一个元素
list2.insert(list2.begin(),1);
//插入3个元素
list2.insert(list2.begin(), 3, 2);
//把list1插入list2
list2.insert(list2.begin(), list1.begin(), list1.end());
//遍历list2
for( iter=list2.begin(); iter!=list2.end(); iter++){
cout << *iter << " ";
}
cout << endl;
//把list2大小改变到30,被加入的多余元素被赋值为--1
list2.resize(30, -1);
//给list2中元素排序
list2.sort();
//遍历list2
for( iter=list2.begin(); iter!=list2.end(); iter++){
cout << *iter << " ";
}
cout << endl;
//删除list2中所有重复的元素
list2.unique();
//遍历list2
for( iter=list2.begin(); iter!=list2.end(); iter++){
cout << *iter << " ";
}
cout << endl;
//给list2赋值
list2.assign(list1.begin(), list1.end());
//遍历list2
for( iter=list2.begin(); iter!=list2.end(); iter++){
cout << *iter << " ";
}
cout << endl;
//删除链表中所有值为5的数据
list2.remove(5);
//创建list3
list<int> list3(list2.begin(), list2.end());
//创建list4
list<int> list4(5, 5);
//判断list2是否为空
while(!list2.empty()){
//返回最前面的一个元素
cout << list2.front() << " ";
//删除最前面的元素
list2.pop_front();
}
cout << endl;
//把list1所有元素倒转
list1.reverse();
//判断list1是否为空
while(!list1.empty()){
//返回最后面的一个元素
cout << list1.back() << " " ;
//删除最后面的元素
list1.pop_back();
}
cout << endl;
//把list3和list4归并
list3.sort();
list4.sort();
list4.merge(list3);
//遍历list2
for( iter=list4.begin(); iter!=list4.end(); iter++){
cout << *iter << " ";
}
cout << endl;
return 0;
}