序列式容器是STL中的一类容器,它们以严格的线性顺序来存储元素。这个顺序由元素被插入的位置决定,每个元素都有固定的前后关系。

序列式容器包括以下容器:

容器类型

数据结构

长度特性

访问效率

插入删除效率

内存布局

array<T,N>

固定数组

编译时固定

O(1) 随机访问

不支持增删元素

连续内存

vector<T>

动态数组

运行时可变

O(1) 随机访问

尾部O(1),中间O(n)

连续内存

deque<T>

分块数组

运行时可变

O(1) 随机访问

头尾O(1),中间O(n)

分段连续

list<T>

双向链表

运行时可变

O(n) 顺序访问

任意位置O(1)

非连续

forward_list<T>

单向链表

运行时可变

O(n) 顺序访问

任意位置O(1)

非连续

冷知识:stack和queue属于容器适配器,它们基于deque等序列容器实现,提供特定的接口(LIFO/FIFO)。虽然它们管理的是序列式数据,但在STL官方分类中与直接存储元素的序列容器有所区别。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)