#include <iostream>
using namespace std;
#include <list>
using std::list;
#include <algorithm>
#include <iterator>
template<typename T> void printlist(const list<T> &listRef);
int main()
{
const int size=4;
int arry[size]={2,6,4,8};
list<int> values;
list<int> othervalues;
values.push_front(1);
values.push_front(2);
values.push_back(4);
values.push_back(3);
printlist(values);
values.sort();
cout<<"After soft values:"<<endl;
printlist(values);
//insert elements of arry to othervalue
othervalues.insert(othervalues.begin(),arry,arry+size);
cout<<"\ninsert,othervalus is:";
printlist(othervalues);
//remove othervalues elements and insert at the end of values
values.splice(values.end(),othervalues);
cout<<"\nAfter splice,values contains:";
printlist(values);
values.sort();
cout<<"\nAfter sort,values contain:";
printlist(values);
othervalues.insert(othervalues.begin(),arry,arry+size);
othervalues.sort();
cout<<"\nAfter insert and sort,othercalues contain:";
printlist(othervalues);
//remove othervalues elements and insert into values in sorted order
values.merge(othervalues);//删除otheevalues,将它以有序的方式插入到values,操作之前两个list按照相同的顺序排序
cout<<"\nAfter merge values contains:";
printlist(values);
cout<<" othervalues contains:";
printlist(othervalues);
values.pop_front();
values.pop_back();
cout<<"\n after pop_font and pop_back values contaisn:";
printlist(values);
values.unique();//remove duplicate elements
cout<<"\n After unique,values contains:";
printlist(values);
//swap elements of values and othervalues
values.swap(othervalues);
cout<<"\nAfter swap:\n values contains:";
printlist(values);
cout<<"\nAfter swap:\n othervalues contains:";
printlist(othervalues);
//replace contents of values with elements of othervalues
values.assign(othervalues.begin(),othervalues.end());
cout<<"\nAfter assign,values contains:";
printlist(values);
//remove othervalues and insert into values in sorted order
values.merge(othervalues);
cout<<"\nAfter merge,values contains:";
printlist(values);
values.remove(4);//remove all 4s
cout<<"\nAfter remove(4) ,values contains:";
printlist(values);
cout<<endl;
return 0;
}
template<typename T>
void printlist(const list<T> &listRef)
{
if(listRef.empty())
cout<<"List is empty";
else
{
ostream_iterator<T> output(cout," ");
copy(listRef.begin(),listRef.end(),output);
}
}
转载于:https://www.cnblogs.com/huzhongzhong/archive/2011/07/28/2119861.html