双端队列(deque)
区别于数据结构的双端队列,这里的是STL的!!
双端队列(deque容器类):#include<deque>与vector 类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与 vector不同的是,deque还支持从开始端插入数据:push_front()。此外deque 不支持与vector 的capacity()、reserve() 类似的操作。
deque,是“double-ended queue”的缩写。
可以随机存取元素(用索引直接存取)。
数组头部和尾部添加或移除元素都非常快速,但是在中部安插元素比较费时。
优势:查找 劣势:添加、删除(仅头部尾部快)
deque容器详解
头文件 #include <deque>
定义变量 deque<int> mydeq;
主要成员函数
mydeq.clear() 移除容器中所有数据。
mydeq.push_front(elem) 在队列首部加入一个数据
mydeq.pop_front() 删除队列尾部数据
mydeq.push_back(elem) 在队列尾部加入一个数据
mydeq.pop_back() 删除队列尾部数据
mydeq.empty() 判断队列是否为空,为空返回true
mydeq.size() 返回容器中实际数据的个数。
mydeq.erase(pos) 删除pos位置的数据,返回下一个数据的位置。
mydeq.insert(pos,cnt,elem) 在pos位置插入cnt个数据elem。
mydeq.begin() 返回的指针指向数组中的第一个数据。
mydeq.end() 实际上是取末尾加一,以便让循环正确运行--它返回的指针指向最靠近数组界限的数据。
operator[] 返回容器中指定位置的一个引用