1、queue
queue(队列),一种数据结构,可以让某些数据结构的操作变得简单。队列(queue)最大的特点就是先进先出。就是说先放入queue容器的元素一定是要先出队列之后,比它后进入队列的元素才能够出队列。
函数:
(1)back() //返回队列中最后一个元素
(2)empty() //判断队列是否为空
(3)front() //返回队列中的第一个元素
(4)pop() //删除队列的第一个元素
(5)push() //在队列末尾加入一个元素
(6)size() //返回队列中元素的个数
(7)emplace() // 在队尾插入一个元素
(8)swap() //交换两个队列的元素
2、dqueue
双端队列(double-ended queue),两端都可以操作、插入、删除、也可以在中间进行操作。内部采用线性表顺序结构,与vector不同的是,deque采用分块的线性存储结构存储数据,每块大小512字节。所有的deque块使用一个Map块进行管理,每个Map数据项纪录各个deque块的首地址。当考虑容器内部的内存分配策略和操作性能时,deque相对于vector更有优势。
函数:
(1)begin() //返回指向容器中第一个元素的迭代器。
(2)end() //返回指向容器最后一个元素所在位置后一个位置的迭代器,通常和 begin() 结合使用。
(3)rbegin() //返回指向最后一个元素的迭代器。
(4)rend() //返回指向第一个元素所在位置前一个位置的迭代器。
(5)size() //返回实际元素个数。
(6)empty() //判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
(7)shrink _to_fit() //将内存减少到等于当前元素实际所使用的大小。
(8)at() //使用经过边界检查的索引访问元素。
(9)front() //返回第一个元素的引用。
(10)back() //返回最后一个元素的引用。
(11)assign() //用新元素替换原有内容。
(12)push_back() //在序列的尾部添加一个元素。
(13)push_front() //在序列的头部添加一个元素。
(14)pop_back() //移除容器尾部的元素。
(15)pop_front() //移除容器头部的元素。
(16)insert() //在指定的位置插入一个或多个元素。
(17)erase() // 移除一个元素或一段元素。
(18)clear() //移出所有的元素,容器大小变为 0。
(19)swap() // 交换两个容器的所有元素。
(20)emplace() //在指定的位置直接生成一个元素。
(21)emplace_front() //在容器头部生成一个元素。和 push_front() 的区别是,该函数直接在容器头部构造元素,省去了复制移动元素的过程。
(22)emplace_back() //在容器尾部生成一个元素。和 push_back() 的区别是,该函数直接在容器尾部构造元素,省去了复制移动元素的过程。