STL容器主要分两大类:
序列性容器:
序列容器保持插入元素的原始顺序。允许指定在容器中插入元素的位置。每个元素都有固定位置,取决于插入时机和地点和元素值无关如:链表(
list
),向量(
vector
),双端队列
(deque
)。
关联性容器:
元素位置取决于特定的排序规则和插入顺序无关,映射表
map
、哈希表
hash-map
、集合
set
。
容器类自动申请和释放内存,
无需new和delete操作
。
STL链表list
STL
链表是序列性容器的模板类,它将其元素保持在线性排列中,链式结构,并允许在序列中的任何位置进行有效的插入和删除。
STL链表特点:
list
在任何指定位置动态的添加删除效率不变,时间复杂度为
O(1)
,操作相比于
vector
比较方
便。但其查找效率为
O(n)
,若经常访问、查看、读取数据使用
vector
。