本文转自:http://blog.chinaunix.net/u2/86575/showart_1734758.html
std::deque是一个高效的双端队列,可以高效地进行插入和删除操作。
以SGI C++ STL为例
deque的基本结构是:有一个map ,map中的元素是一个记录了一个大小为512字节的线性容器。
std::deque的构造方法:
std::deque<int> queInt;//空队列
std::deque<int> queInt(10);//长度为10的队列(其中元素被初始化为该类型的0值)
std::deque<int> queInt(10,5);//长度为10的队列(其中元素被初始化为该类型的5)
std::deque<int> queIntTemp(10,5);//长度为10的队列(其中元素被初始化为该类型的5)
std::deque<int> queInt(queIntTemp);//以queIntTemp初始化queInt
int nArray[5] = {0,1,2,3,4};
std::deque<int> queInt(nArray, nArray + 5);//注意这里是nArray + 5,而不是nArray + 4
插入数据的方法
push_back();//末尾插入
push_front();//前端插入
删除方法
pop_front();
pop_back();
erase();
clear();
lincyang注:
如果需要使用“消息队列”,那么用deque是再好不过了!高效的插入和删除,是deque与vector和list的区别。
从一个vector的尾部追加和删除元素是快速高效的;在list插入和删除元素的效率在任何位置都是等效的,但查询一个元素是费时的。