《C++ Primer》读书笔记-第九章 01 顺序容器
来源:互联网 发布:陇南市乡村大数据 编辑:程序博客网 时间:2024/05/15 08:09
作者:马志峰
链接:https://zhuanlan.zhihu.com/p/24262745
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/24262745
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
声明:
- 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
- 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
- 本文仅作学习交流使用,禁止任何形式的转载
正文
本章内容
- 概述
- 所有容器都适用的操作
- 顺序容器适用的操作
- vector内存
- string操作
- 适配器
顺序容器
元素的存储和访问依赖于元素加入容器时的位置
提供了快速顺序访问元素的能力
- vector,string 快速随机访问,尾部增删快
- deque 快速随机访问,头尾增删快
- array 快速随机访问,不能增删
- list 只支持双向顺序访问,任何位置增删都快
- forward_list 只支持单向顺序访问,任何位置增删都快
string和vector将元素保存在连续的内存空间中,所以由下标计算其地址是非常快速的;这也就造成了如果要在中间位置增删元素,其后的所有元素都要移动
list和forward_list解决了在中间位置增删的问题,但是不支持随机访问,只能遍历整个窗口来访问某一个元素,且空间开销大
array是新c++标准增加的数组类型,是一种更安全更易使用的数组类型
如何确定使用哪种容器
尽量使用vecotr,除非有更好的选择
通常情况下,我们可以根据各个容器的特点以及我们的实际需要来确定使用哪种容器
一个特殊的情况是:如果程序只有在读取输入时才需要在容器中间位置插入元素,随后需要随机访问元素,则
- 确定是否可以使用vector以及sort函数来避免在中间位置插入元素
- 如果必须在中间位置插入元素,考虑在输入阶段使用list,一旦输入完成,将list中的内容拷贝到一个vector中使用
如果既需要在中间位置插入元素,又需要随机访问,则需要考虑是以空间换时间,还是以时间换空间。根据实际场景确定是使用list(forward_list)或vecotr(deque)
0 0
- c++ primer读书笔记-第九章 顺序容器
- C++ primer 读书笔记 第九章 顺序容器
- 《C++ Primer》读书笔记-第九章 01 顺序容器
- C++primer 第九章:顺序容器----字符串
- 《C++ Primer》读书笔记——第九章_顺序容器
- 《C++ Primer》读书笔记-第九章 03 顺序容器操作
- 菜狗的C++ primer读书笔记:第九章 顺序容器
- c++primer学习笔记 ( 第九章 顺序容器)
- C++primer第五版笔记-第九章顺序容器
- 顺序容器——C++Primer第九章
- c++primer第九章顺序容器 小结--9
- C++primer第4版第九章顺序容器
- C++PRIMER第一轮复习第九章 顺序容器
- c++primer顺序容器知识点 第九章课后题
- 《C++ Primer》读书笔记第九章-1- 顺序容器概述 And 容器库概览
- 《C++Primer》读书笔记——第9章 顺序容器
- C++primer U9 读书笔记 顺序容器
- C++ Primer 4 第九章 顺序容器
- TGP漏洞:lol无法正常登录问题
- 将十进制数转化为八进制数
- 重温java(static关键字)
- 推荐系统之标签相关
- 显示 ^M 的问题
- 《C++ Primer》读书笔记-第九章 01 顺序容器
- Tensorflow安装与测试
- Webservice的cxf开发_使用spring发布服务+ajax调用服务
- iOS逆向入门实践 — 逆向微信,伪装定位(一)
- 后台之路(一):java基础回顾
- 数数
- linux ln 命令使用参数详解(ln -s 软链接)
- Java 学习笔记 Day010
- matlab各种技巧笔记