定义和初始化#include#include#inlcude初始化:C c;空容器,如vector ivec;C c(c2);创建容器c2的副本cC c(b,e);由迭代器b,e标识的范围内的元素的副本,如list ilist(ivec.begin(),ivec.end());C c(n,t);用n...
分类:
编程语言 时间:
2014-11-24 16:54:44
阅读次数:
227
一:map的前世今生
(1)从关联容器与顺序容器说起,关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素(vector,queue,stack,list等)。
关联容器(Associative containers)支持通过键来高效地查找和读取元素。两个基本的关联容器类型是 map 和 set。 其中map 的元素以键-值(key-value)...
分类:
编程语言 时间:
2014-11-19 18:43:59
阅读次数:
227
vector(deque)是一个顺序容器,erase后,后面的元素自动前移,后面所有迭代器失效(地址前移)对顺序容器的erase正确操作方法是使用erase的返回值,erase返回被删元素的下一个元素地址。 iterator erase(iterator __position) { if (...
分类:
其他好文 时间:
2014-11-13 14:15:20
阅读次数:
127
C++ Primer 中文版,第4版/*第一章 快速入门第二章 变量和基本类型第三章 标准库类型第四章 数组和指针第五章 表达式第六章 语句第七章 函数第八章 标准IO库第九章 顺序容器第十章 关联容器第11章 泛型算法 第12章 类 第13章 复制控制 第14章 重载操作符与转换第15章 面向对象...
分类:
其他好文 时间:
2014-11-10 23:03:23
阅读次数:
335
1:set不支持map的下标操作,同时multimap也是不支持的 2:map解决的是类似字典这种对应应用;set类似于黑名单的应用;这类容器都是通过键来存储和读取元素的;而顺序容器是通过元素的位置顺序存储以及访问。 3:multimap 以及multiset是多键值的;类似电话簿,一个人可以多个号...
分类:
其他好文 时间:
2014-10-28 11:52:09
阅读次数:
196
1:容器必须支持的2种操作,这种类型才能作为容器的元素:一是元素类型支持赋值操作,而是元素类型支持对象复制操作 2:操作特殊需求,例如容器元素类型为类类型,该类只提供了单值初始化构造函数,则不能用vec(n)的操作了,因为无法给类类型初始化,这是由于没有默认构造函数导致的。但是可以vec(n,1) ...
分类:
其他好文 时间:
2014-10-27 21:11:11
阅读次数:
167
ngx_list _t是一个顺序容器,它实际上是动态数组和单向链表的结合体,扩容起来比动态数组简单的多,可以一次扩容一个数组,所以说它结合了 链表插入删除不需要移动的 和 数组下标快速索引 的优势,设计非常让人叫绝,此外它还有以下特点:
链表中存储的元素是灵活的,可以是任何一种数据结构。
链表元素需要占用的内存由ngx_list_t管理,它已经通过数组分配好了。
小块的内存使用链表访问O(n)效率是低下的,可以使用数组通过直接通过偏移量来直接访问O(1)。...
分类:
其他好文 时间:
2014-10-23 17:40:57
阅读次数:
186
ngx_queue作为顺序容器链表,它优势在于其可以高效地执行插入、删除、合并操作,在插入删除的过程中,只需要修改指针指向,而不需要拷贝数据,因此,对于频繁修改的容器很适合。此外,相对于STL list,它还具有以下特点:
自身实现了排序功能
轻量级,不负责内存的分配
自身支持两个链表的合并...
分类:
其他好文 时间:
2014-10-22 10:07:12
阅读次数:
279
ngx_array _t是一个顺序容器,支持达到数组容量上限时动态改变数组的大小,类似于STL中vector,具有以下特性:
下标直接索引,访问速度快
动态增长
由slab内存池统一管理分配出的内存,效率高...
分类:
编程语言 时间:
2014-10-21 15:29:35
阅读次数:
322
1、简介Vector属于顺序容器,代表可改变大小的数组。像数组一样,vector使用连续存储,意味着它们的元素可以使用偏移来访问。不同于数组,它们的规模可以动态改变。Vectors are sequence containers representing arrays that can change...
分类:
编程语言 时间:
2014-10-09 00:26:07
阅读次数:
243