利用STL模板库,我在程序里定义了一个队列,里面装着整型值:
#include <list>
#include <queue>
using namespace std;
typedef list<int, allocator<int> > INTLIST;
typedef queue<int,INTLIST > INTQUEUE;
INTQUEUE CURRENTQUEUE;请问 ,如何遍历这个队列,如果如下遍历:
int value;
while(!CURRENTQUEUE.empty()){
value=CURRENTQUEUE.front();
CURRENTQUEUE.pop();
}
这样 ,这个队列就发生了变化,因为每读一个就把队首去掉了
我希望遍历后不要改变队列,请问该如何做?
#include <list>
#include <queue>
using namespace std;
typedef list<int, allocator<int> > INTLIST;
typedef queue<int,INTLIST > INTQUEUE;
INTQUEUE CURRENTQUEUE;请问 ,如何遍历这个队列,如果如下遍历:
int value;
while(!CURRENTQUEUE.empty()){
value=CURRENTQUEUE.front();
CURRENTQUEUE.pop();
}
这样 ,这个队列就发生了变化,因为每读一个就把队首去掉了
我希望遍历后不要改变队列,请问该如何做?
解决方案 »
- win32 怎样实现程序关闭时不立刻退出
- 在windows窗口程序中,如何输出信息到 STD_OUTPUT_HANDLE
- 为什么我的VC6的Warning level设为none了,还输出警告信息?
- Debug Assertion Failed
- MFC画图怎么在改变窗口大小后画的图形依然存在
- how to get data from memory?!! thanks
- windows下运行一个telnet,怎么获取到这个telnet窗口里显示的所有内容?更进一步,怎么截获到该telnet程序所有的输入输出的内容?
- 一个简单的问题
- 请高手指点指点
- MFC AfxBegainThread 出错
- CTreelCtrl如何修改Checkbox的大小
- 加载进服务的应用程序不能长久运行
因为我想计算队列的滑动平均值,所以,每次push,pop后要重新计算一次队列的平均值。
push回去。
不过我想,这样简单的结构,如果没有接口可用。自己去写一个就OK了。
或者可以获得这个队列的队首指针不,有的话,直接用它去操作。具体的细节自己想想。
我不懂这里的stl都有啥功能。
基本的东西,参见大学课本,严蔚敏的数据结构。
dequeue是双端队列吗?跟queue相比,有什么不同和优点 ?