1.list的成员函数
#include<iostream>
#include<list>
#include<algorithm>
#include<iterator>
using namespace std;
void show(int n)
{
cout<<n<<endl;
}
void print(list<int> &T)
{
//用for_each()遍历输出链表里的值 参数是 起始 末尾的下一个 函数名
for_each(T.begin(),T.end(),show);
cout<<endl;
//用迭代器做也可以
/*list<int>::iterator it;
for(it=T.begin();it!=T.end();it++)
{
cout<<*it<<endl;
}*/
}
int main()
{
list<int> one(5,2); //赋了5个2
print(one);
one.push_back(3); //在末尾插入值
one.push_front(1); //在开头插入值
print(one);
one.remove(2); //去除所有的为2的值
print(one);
list<int> two(2,6);
one.merge(two); //合并 合并后two为空
print(one);
one.unique(); //连续的相同值压缩为一个
print(one); // 1 3 6
int arr[3]={6,7,8};
one.insert(one.begin(),arr,arr+2); //从one.bgin()处插入包左不包右的[arr,arr+2)
print(one); // 6 7 1 3 6
one.sort(); //排序 默认从小到大
print(one);
return 0;
}
2.list的迭代器
#include<cstdlib>
#include<list>
#include<numeric>
using namespace std;
typedef list<int> listInt;
int main()
{
listInt listone; //创建列表
listInt::iterator i; //声明迭代器
listone.push_front(2); //从前面往容器加数据
listone.push_front(1);
//从后面添加数据
listone.push_back(3);
listone.push_back(4);
//从前往后显示Listone中的数据
for(i=listone.begin();i!=listone.end();i++)
{
cout<<*i<<" ";
}
/* //使用STL中的累加(accumulate)算法
//DEV里没这个库numeric
int result=accumlate(listone.begin(),listone.end());
cout<<result<<endl;
*/
system("pause");
return 0;
}