摘要: 怎么说呢,deque是一种双向开口的连续线性空间,至少逻辑上看上去是这样。然而事实上却没有那么简单,准确来说deque其实是一种分段连续空间,因此其实现以及各种操作比vector复杂的多。一.deque的中控器 deque是有一段一段的定量连续空间构成,采用一块所谓的map(当然不是map容器)作为主控。map是一小块连续空间,其中每一个元素都是一个指针,指向另一段连续性空间(缓冲区)。缓冲区才是deque的储存空间主体。我们可以指定缓冲区大小,默认值0表示使用512字节缓冲区。deque设计结构如下图所示:二.deque的数据结构 deque除了维护map的指针外,也要维护start,fi. 阅读全文
posted @ 2014-01-09 21:39 七年之后 阅读(7510) 评论(0) 推荐(1) 编辑
摘要: 一.list的成员函数Iterators:list.begin()回传指向第一个元素的 Iterator。list.end()回传指向最末元素的下一个位置的 Iterator。list.rbegin()回传指向最末个元素的反向 Iterator。list.rend()回传指向第一个元素的前一个位置的反向 Iterator。Capacity/Size:list.empty()若list内部为空,则回传true值。list.size()回传list内实际的元素个数。lsit.resize()重新分派list的长度。Element Accesslist.front()存取第一个元素。list.bac 阅读全文
posted @ 2014-01-09 16:21 七年之后 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 与普通数组array不同,vector是动态空间,它支持随机存取,在集合尾端增删元素很快,但是在集合中间增删元素比较费时。随着元素的加入,它会自行扩充空间来容纳新元素,这些特性都是vector实现技术的关键所在。一.vector成员函数: 首先了解vector的各个成员函数的作用:1.访问元素的方法vec[i]- 访问索引值为 i 的元素引用。 vec.at(i)- 访问索引值为 i 的元素的引用,以 at() 访问会做数组边界检查,如果访问越界将会抛出异常。vec.front()- 回传 vector 第一个元素的引用。vec.back()- 回传 vector 最尾元素的引用。2.新增或. 阅读全文
posted @ 2014-01-09 00:15 七年之后 阅读(406) 评论(0) 推荐(0) 编辑