首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

STL器皿之list

2012-08-09 
STL容器之listlist也是一个顺序容器。元素在容器线性排列。list中元素间的存储位置无关联,其元素的先后关系

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;}








热点排行