概述
第九章 顺序容器
vector 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢
deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快
list 双向链表。只支持双向顺序访问。在11st中任何位置进行插入/删除操作速度都很快
forward_list 单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快
array 固定大小数组。支持快速随机访问。不能添加或删除元素
string 与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入/删除速度快
通常,使用vector是最好的选择,除非你有很好的理由选择其他容器。
当不需要写访问时,应使用cbegin和cend。
使用assign(仅顺序容器)由于其旧元素被替换,因此传递给assign的迭代器不能指向调用assign的容器。
当我们用一个对象来初始化容器时,或将一个对象插入到容器中时,实际上放入到容器中的是对象值的一个拷贝,而不是对象本身。就像我们将一个对象传递给非引用参
数一样,容器中的元素与提供值的对象之间没有任何关联。随后对容器中元素的任何改变都不会影响到原始对象,反之亦然。
不要保存end返回的迭代器
vector或string在增加元素时,会优先选择已经申请的备用空间,备用空间不足时申请新的空间
容器的size是指它已经保存的元素的数目;而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。
除了顺序容器外,标准库还定义了三个顺序容器适配器:stack、queue和priority_queue。
适配器(adaptor)是标准库中的一个通用概念。容器、迭代器和函数都有适配器。
本质上,一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样。
一个容器适配器接受一种已有的容器类型,使其行为看起来像一种不同的类型。
最后
以上就是儒雅奇迹为你收集整理的【C++ Primer笔记】第九章 顺序容器的全部内容,希望文章能够帮你解决【C++ Primer笔记】第九章 顺序容器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复