目录
一、构造
std::list<int> first;
std::list<int> second (4,100);
std::list<int> third (second.begin(),second.end());
std::list<int> fourth (third);
也是经典的四个构造
二、修改
1.assign
void assign (InputIterator first, InputIterator last);
list1.assign(list2.begin(),list2.end());//从别的list里面拿来修改
int myints[]={1776,7,4};//从数组里面拿
first.assign (myints,myints+3);
可以把原list修改成另一个list
2.resize
std::list<int> mylist;
for (int i=1; i<10; ++i) mylist.push_back(i);
mylist.resize(5);
mylist.resize(8,100);
mylist.resize(12);
1 2 3 4 5 100 100 100 0 0 0 0
三、operations
1.remove
int myints[]= {17,89,7,14};
std::list<int> mylist (myints,myints+4);
mylist.remove(89);
//可以移除某个元素
2.splice
void splice (iterator position, list& x);//把整个list移到另一个list中,原list变为空
void splice (iterator position, list& x, iterator i);//某个节点移动到另一个list中
void splice (iterator position, list& x, iterator first, iterator last);//某段一刀list中
3.sort//list只能用自己的sort,因为list是bidirectional iterator,而sort要求RandomAccessIterator
升序 < less
降序 > greater
greater<int> gt;
list.sort(gt);
或
list.sort(greater<int>());//使用匿名变量
4.merge(用的比较少)
void merge (list& x);
template <class Compare>
void merge (list& x, Compare comp);
bool mycomparison (double first, double second)
{ return ( int(first)<int(second) ); }
std::list<double> first, second;
first.push_back (3.1);
first.push_back (2.2);
first.push_back (2.9);
second.push_back (3.7);
second.push_back (7.1);
second.push_back (1.4);
first.sort();
second.sort();
first.merge(second);
// (second is now empty) 合并以后被合并的list会变空
second.push_back (2.1);
first.merge(second,mycomparison);
5.unique
void unique();//去重,但是和merge一样要求排好序
6.reverse
void reverse();//逆置代码