deque
deque的定义是:双端队列,也是一种动态的容器,但是不同于其他容器的一点是,deque可以两端进行扩容,而且deque的实现可以看成是一个二维数组,首先是一个一维的map数组,里面的每个单元又是一个二维的数组,而且deque的主要的有点就是在两端的插入与删除非常的快,并且deque在空间的增长方面也不需要频繁的申请空间,只需要在map这个一维数组的两端进行扩容就行了,大大缩小了空间的浪费,deque也可以像vector一样进行方括号的重载,[]访问
deque的构造函数:
- deque() 空构造
- deque(n,val = value type()) n个val的构造
- deque(first,end) 一段的构造
- deque(const deque &x) 拷贝构造
deque的迭代器:
- [begin(),end()]
- [rbegin(),rend()]
- [cbegin(),cend()]
- [crbegin(),crend()]
deque 不是整个连续的空间,而是一块一块的连续空间,所以在访问的时候不可以使用指针加数字来访问,以免访问出界
deque的容器操作:
- size() 有效元素的个数
- empty() 判断deque是否为空,空的话返回1
- resize(sz,value) 将元素改变到sz,多出的空间value填充
deque的元素访问操作:
- operator [] :方括号访问
- front/back :取首或尾
deque中的修改操作:
- push_back、pop_back、push_front、pop_front
- insert(pos,value)、erase(pos) 插入删除
- swap() 交换两个deque的内容
- clear() 清空deque