C++Primer第5版读书笔记(第9章)

第9章 顺序容器
9.1 顺序容器概述
C++Primer第5版读书笔记(第9章)_第1张图片

  1. 选择容器的基本原则:
    • 除非有很好的理由选择其他容器,否则应使用vector;
    • 如果程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list;
    • 如果程序要求随机访问元素,应使用vector或deque;
    • 如果程序要求在容器的中间插入或删除元素,应使用list或forward_list;
    • 如果程序需要在头尾位置插入或删除元素,但不会在中间位置进行插入或删除操作,则使用deque;
    • 如果程序只有在读取输入时才需要在容器中间位置插入元素,随后需要随机访问元素,则:
      a)首先,确定是否真的需要在容器中间位置添加元素。当处理输入数据时,通常可以很容易地向vector追加数据,然后在调用标准库的sort函数来重排序,从而避免在中间位置添加元素。
      b)如果必须在中间位置插入元素,考虑在输入阶段使用list,一旦输入完成,将list中的内容拷贝到一个vector中。

9.2 容器库概览
C++Primer第5版读书笔记(第9章)_第2张图片
C++Primer第5版读书笔记(第9章)_第3张图片
C++Primer第5版读书笔记(第9章)_第4张图片
9.2.4 容器定义和初始化
C++Primer第5版读书笔记(第9章)_第5张图片

9.2.5 赋值和swap
C++Primer第5版读书笔记(第9章)_第6张图片

  1. 除array外,swap不对任何元素进行拷贝、删除或插入操作,因此可以保证在常数时间内完成;

9.3 顺序容器操作
9.3.1 向顺序容器添加元素
C++Primer第5版读书笔记(第9章)_第7张图片
9.3.2 访问元素
C++Primer第5版读书笔记(第9章)_第8张图片
9.3.3 删除元素
C++Primer第5版读书笔记(第9章)_第9张图片
9.3.4 特殊的forward_list操作
C++Primer第5版读书笔记(第9章)_第10张图片
9.3.5 改变容器大小
C++Primer第5版读书笔记(第9章)_第11张图片
9.4 vector对象时如何增长的
C++Primer第5版读书笔记(第9章)_第12张图片
只有当需求的内存空间超过当前容量时,reserve调用才会改变vector的容量。
9.5.1 构造string的其他方法
C++Primer第5版读书笔记(第9章)_第13张图片
这里写图片描述
9.5.2 改变string的其他方法
C++Primer第5版读书笔记(第9章)_第14张图片
C++Primer第5版读书笔记(第9章)_第15张图片
9.5.3 string搜索操作
C++Primer第5版读书笔记(第9章)_第16张图片
C++Primer第5版读书笔记(第9章)_第17张图片
9.5.4 compare函数
C++Primer第5版读书笔记(第9章)_第18张图片
9.5.5 数值转换
C++Primer第5版读书笔记(第9章)_第19张图片
9.6 容器适配器
标准库定义的三种顺序容器适配器:stack,queue和priority_queue。适配器是标准库中的一个通用概念,容器、迭代器和函数都有适配器。
C++Primer第5版读书笔记(第9章)_第20张图片
栈适配器
C++Primer第5版读书笔记(第9章)_第21张图片
队列适配器
C++Primer第5版读书笔记(第9章)_第22张图片
C++Primer第5版读书笔记(第9章)_第23张图片

你可能感兴趣的:(C++)