Deque是双端队列,在画动态图表的时候使用起来比较方便。因为当数据填满图表后,需要从队列的后方插入一个元素,然后再从队列的前方删除一个元素。使用Deque可以很方便的做到。使用push(pop)-back(front)就ok了
下面摘录了一个Deque的使用教程
/*deque: 是一个double-ended queue, 1)支持随即存取,也就是[]操作符, 2)支持两端操作,push(pop)-back(front),在两端操作上与list效率差不多 因此在实际使用时,如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面的原则: 1、如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector 2、如果你需要大量的插入和删除,而不关心随即存取,则应使用list 3、如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque。*/#include#include using namespace std;void printDeque(deque d){//使用下标//for (unsigned int i = 0; i < d.size(); i++)//{// cout<<"d["< <<"] = "< <<", ";//}//使用迭代器//deque ::iterator iter = d.begin();//for (;iter != d.end(); iter ++)//{// cout<<"d["< <<"] = "<<(*iter)<<", ";//}//使用迭代器指针deque ::iterator *pIter = new deque ::iterator;if ( NULL == pIter ){ return ;}for (*pIter = d.begin(); *pIter != d.end(); (*pIter)++){ cout<<"d["<<*pIter - d.begin() <<"]="<<**pIter<<", ";}if (NULL != pIter){ delete pIter; pIter = NULL;}cout<