容器的结构与分类:

首先介绍一下顺序容器:
Array 是数组,确定了开始位置和结束位置,同时不能超出它的内存。
Vector 确定了开始位置,但可以一直向后添加新的空间去存放元素。
Deque 开始位置能够扩充并且结束位置也能够扩充
List 双向链表,相比于Forward-List占用的内存更大,因为一个元素对应两个指针。
Forward-List 单向列表,看下面的小图可知开始位置是确定的。
关联容器:(一般用于查找)
Set 中key和value是一样的,通过红黑树来编写。
Map 中有两个格子,一个用来存放key一个用来存放value。
值得注意的是,multi-代表key的值可以相同,而不添加multi前缀代表,每个元素的key是独一无二的。
无顺序容器:
无顺序容器实际是由哈希表组成,哈希表见下图

即每一个竖直的蓝色小框框都代表一个链表,可以连接许多元素。但是每个蓝色小框中的链表不能太长,太长不方便查找。
侯捷老师最后给出一张所有容器的关系图,如下图所示:

本文介绍了C++中的几种主要容器,包括Array、Vector、Deque、List、Forward-List、Set、Map及其特性和使用。重点讨论了Array和Vector的测试,展示了它们在内存扩展上的区别。此外,还提到了List每次增加节点的高效内存利用,以及DeQue的假连续存储结构。Stack和Queue作为适配器,基于deque实现特定的访问顺序。
最低0.47元/天 解锁文章
394

被折叠的 条评论
为什么被折叠?



