Emmmm...总看学习的word有点麻烦...云保存到csdn方便点吧....
转载于....计算机老师的文件。。
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。
尾插 --- push_back
尾删 --- pop_back
头插 --- push_front
头删 --- pop_front
插入 --- insert
删除 --- erase
移除 --- remove
清空 --- clear
List的构造函数和析构函数 | |
list<Elem> c | 产生一个空list,其中没有任何元素 |
list<Elem> c1(c2) | 产生另一个同型list的副本(所有的元素都被拷贝) |
list<Elem> c(n) | 利用元素的default构造函数产生一个大小为n的list |
list<Elem> c(n,elem) | 产生一个大小为n的list,每个元素值都是elem |
list<Elem> c(beg, end) | 产生一个list,以区间[beg, end)做为元素初值 |
c.~list<Elem>() | 销毁所有元素,并释放内存 |
list的非变动性操作 | |
c.size() | 返回容器的大小 |
c.empty() | 判断容器是否为空,等价于size()==0,但可能更快 |
c.max_size() | 返回容器最大的可以存储的元素 |
reserve() | 如果容量不足,扩大之 |
c1 == c2 | 判断c1 是否等于c2 |
c1 != c2 | 判断c1是否不等于c2 |
c1 < c2 | 判断c1 是否小于c2 |
c1 > c2 | 判断c1 是否大于c2 |
c1 <= c2 | 判断c1是否小于等于c2 |
c1 >= c2 | 判断c1是否大于等于c2 |
list的赋值操作 | |
c1 = c2 | 将c2的全部元素赋值给c1 |
c.assign(n, elem) | 复制n个elem,复制给c |
c.assign(beg, end) | 将区间[beg;end)内的元素赋值给c |
c1.swap(c2) | 将c1和c2元素互换 |
swap(c1,c2) | 同上,此为全局函数 |
list元素之间存取 | |
c.front | 返回第一个元素,不检查元素存在与否 |
c.back | 返回最后一个元素,不检查元素存在与否 |
list迭代器相关函数 | |
c.begin() | 返回一个双向迭代器,指向第一个元素 |
c.end() | 返回一个双向迭代器,指向最后一个元素的下一个位置 |
c.begin() | 返回一个逆向迭代器,指向逆向迭代的第一个元素 |
c.end() | 返回一个逆向迭代器, 指向逆向迭代的最后一个元素的下一个位置 |
list安插、移除操作函数 | |
c.insert(pos, elem) | 在迭代器pos所指位置上安插一个elem副本, 并返回新元素的位置 |
c.insert(pos,n,elem) | 在pos位置上插入n个elem副本,无返回值 |
c.insert(pos,beg,end) | 在pos位置上插入区间[beg,end)内的所有元素的副本 没有返回值 |
c.push_back(elem) | 在尾部添加一个elem副本 |
c.pop_back() | 移除最后一个元素,无返回值 |
c.push_front() | 在头部添加一个elem副本 |
c.pop_front() | 移除第一个元素,但不返回 |
c.remove(val) | 移除所有其值为val的元素 |
c.remove_if() | |
c.erase(pos) | 移除pos位置上的元素,返回下一个元素的位置 |
c.erase(beg, end) | 移除[beg, end)区间内的所有元素, 返回下一个元素的位置 |
c.resize(num) | 将元素数量改为num(如果size()变大了, 多出来的新元素都需以default构造函数完成) |
c.resize(num,elem) | 将元素数量改为num(如果size()变大了, 多出来的新元素都elem的副本) |
c.clear() | 移除所有元素,将容器清空 |
备注:安插和移除元素,都会使“作用点”之后的各个元素的iterator等失效,若发生内存重新分配,该容器身上的所有iterator等都会失效 | |
List的特殊变动性操作 | |
如果存在若干相邻而数值相等的元素,就移除重复元素,只留下一个 | |
c.unique(op) | 如果存在若干相邻元素,都使op()的结果为ture, 则移除重复元素,只留下一个。 |
c1.splice(pos, c2) | 将c2内的所有元素转移到c1之内,迭代器pos之前 |
c1.splice(pos, c2, c2pos) | 将c2内的c2pos所指元素转移到c1之内的pos所指位置上 (c1,c2可相同) |
c1.splice(pos, c2, c2beg,c2end) | 将c2内的[c2beg,c2end)区间内所有元素转移到 c1内的pos之前(c1,c2可相同) |
c.sort() | 以operator<为准则,对所有元素排序 |
c.sort(op) | 以op()为准则,对所有元素排序 |
c1.merge(c2) | 假设c1和c2容器都包含已序(相同的排序方式)元素,将c2的全部元素转移到c1,并保证合并后的list还是已序。 |
c1.merge(c2,op) | 假设c1和c2容器都包含op()原则下的已序(相同的排序方式)元素,将c2的全部元素转移到c1,并保证合并后的list在op()原则仍是已序。 |
c.reverse() | 将所有元素反序 |