C++ Primer 第九章 9.1 顺序容器概述练习和总结

本文介绍了C++ Primer第九章9.1节中的顺序容器概念,包括顺序容器与关联容器的区别。标准库中的顺序容器如forward_list、array等,以及在选择容器时如何根据业务需求权衡访问速度、插入删除性能和空间开销。在实际应用中,通常推荐使用vector或list。练习部分分析了针对不同场景选择list、deque和vector的原因。
摘要由CSDN通过智能技术生成

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值