STL容器之list
list也是一个顺序容器。元素在容器线性排列。list中元素间的存储位置无关联,其元素的先后关系由链表指针表示。
list容器有如下特点:
相较于其它两种顺序容器(vector和deque),list在插入删除移动元素时的效率较高,一般用于排序算法。但是list容器,不能直接访问某元素。比如我们要访问第6个元素,我们只能从第一个或最后一个元素,一个一个的遍历过去,不像其它两种顺序容器,可以使用下标直接访问。另外由于需要存储额外的指针,list的空间开销也较其它两种容器大,尤其是在存储大量小元素时。
此容器模版声明如下:
#include <list>#include <iostream>using namespace std;int main (){ int ar1[] = {1, 5, 3, 9, 7}; int ar2[] = {2, 4, 8, 6, 0}; list<int> a1 (ar1, ar1 + sizeof(ar1)/sizeof(int)); list<int> a2 (ar2, ar2 + sizeof(ar2)/sizeof(int)); a1.sort (); a2.sort (); a1.merge (a2); list<int> &first = a1; cout << "first contains:"; for (list<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << " " << *it; cout << endl;}