C++ Primer 第九章 9.1 练习和总结

9.1 容器概述

容器用来存储特定类型的对象,容器分为顺序容器和关联容器,
顺序容器提供了元素存储和访问顺序的能力,这种顺序不依赖于存储对象的值。
关联容器的访问顺序 由关键词的顺序决定。

标准库中的顺序容器有以下几种。

在这里插入图片描述
他们所提供的功能不同,在访问元素的速度、存储开销、插入和删除上的性能消耗上各有不同。

其中forward_list和array是C++新标准增加的标准库容器,他们两个的性能基本达到了自己手动实现单向链表和数组的最高效率。

所以我们可以使用array来代替C++中原始的数组。

由于每种容器在访问元素速度、插入删除、额外空间消耗上各有取舍,我们在实际的应用中**,如果没有特别明确的业务需求,一般都推荐使用vector或者list**。如果业务的要求,非常的明确,那么可以根据业务需求选择最合适的容器。

书中推荐的考虑方法如下:
在这里插入图片描述
一时半会背不下来,没有关系,在实际操作中慢慢熟悉。

练习

9.1
a。list,按照字典序插入到容器中,意味着遍历的访问顺序不是存储的顺序。所以元素可能非常频繁的在中间插入元素。vector和deque在中间插入元素的性能消耗都比较大。
b。deque,需求明确的说明了,删除和插入的操作都在头部和尾部,vector在头部的操作消耗很大,list在任意位置插入都很快,但是额外的空间开销更大。
c。vector,因为要排序,所以涉及,所以频繁涉及访问元素。list访问元素只能顺序访问,vector和deque可以快速访问。deque相对于vector实现更加复杂,我选vector

发布了54 篇原创文章 · 获赞 6 · 访问量 3332

猜你喜欢

转载自blog.csdn.net/zengqi12138/article/details/104216143