顺序容器 选择什么容器根据业务需求, 研读STL剖析了解底层数据结构, 更加清楚各种优势劣势 [TOC] 零碎点 迭代器被设置为 左闭右合 带来的编程假设 begin == end,范围为空 begin != end, 至少一个元素 begin可递增至end 两大类型的容器初始化——同类型容器拷贝, ...
分类:
编程语言 时间:
2019-10-17 23:28:31
阅读次数:
107
一、操作 添加删除元素、设置容器大小以及获取容器元素。 二、容器类型别名(常用) size_type:无符号整型,容器长度 iterator:迭代器;const_iterator:只读容器迭代器 value_type:元素类型 reference:元素引用 其他如逆序、迭代器差值等等。 示例: 三、 ...
分类:
编程语言 时间:
2019-10-05 18:52:18
阅读次数:
117
/*vector(向量):是一种顺序容器,,动态数组,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。 2. ...
分类:
编程语言 时间:
2019-10-04 00:00:21
阅读次数:
125
一、像使用指针可以遍历数组一样,我们可以使用迭代器来遍历容器; 二、迭代器常用运算: 1.*ite返回迭代器所指向的元素的引用(ite是一个迭代器); 2.ite->mem:获取迭代器中指定元素名为mem的成员,等价于(*item).mem; 3.++ite/ite++:给ite加1,指向下一个元素 ...
分类:
编程语言 时间:
2019-09-18 01:28:48
阅读次数:
144
一、几种类型 1.vector,支持快速随机访问,类似数组,通过下标方式来访问,但是对中间的插入或删除访问效率比较低; 2.list,双向链表,一个是数据项,一个是链表项,支持快速插入或删除,因为不需要移动位置,只需要修改它里边的一个指针、一个地址就可以; 3.deque,双端队列,在两端插入或删除 ...
分类:
编程语言 时间:
2019-09-18 00:55:57
阅读次数:
110
1.关联容器 关联容器中的元素时按照关键字来保存和访问的,与之相对的,顺序容器中的元素时按它们在容器中的位置来顺序保存和访问的。两个主要关联容器是 map 和 set。标准库提供了8个关联容器,这8个容器间的不同体现在 三个维度上: 或是一个 map 或是一个 set 或者要求不重复关键字,或者允许 ...
分类:
编程语言 时间:
2019-08-17 13:01:23
阅读次数:
106
1. 顺序容器 vector和string将元素保存在连续的内存空间中。由于元素是连续存储的,由元素的下标来计算其地址是非常快速的。但是在这两种容器的中间位置添加或删除元素就非常耗时 list和forward_list两个容器的设计目的是令容器任何位置的添加和删除操作都很快速。作为代价,这两个容器不 ...
分类:
编程语言 时间:
2019-08-13 22:30:31
阅读次数:
94
一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。 二、容器特性1.顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过 ...
分类:
其他好文 时间:
2019-08-08 23:38:23
阅读次数:
147
一、什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。 二、容器特性 1.顺序序列 顺序容器中的元素按照严格的线性顺序排序。可以 ...
分类:
其他好文 时间:
2019-08-07 22:42:08
阅读次数:
137
<!-- p, li { white-space: pre-wrap; } --> <!--StartFragment-->/* 第12章 理解容器与迭代器 STL中的容器是范型结构.贴别适合保存数据集合.容器为模板. 5大类17个容器 顺序容器: vector list deque array f ...
分类:
编程语言 时间:
2019-05-26 21:20:07
阅读次数:
134