如何使用STL中的 队列?

xxjoyjn 2008-11-22 03:54:55
有朋友告诉我这样使用队列:

#include<list>
#include<queue>
using namespace std;
typedef list<int, allocator<int> > INTLIST;
typedef queue<int,INTLIST > INTQUEUE;

为什么不能直接这样一句:typedef queue<int> INTQUEUE;?????????
朋友为什么告诉我要是用这样两句:

typedef list<int, allocator<int> > INTLIST;
typedef queue<int,INTLIST > INTQUEUE;???????????????

请问,上述两句定义中的第二个参数各是什么含义?
谢谢!!
...全文
78 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xxjoyjn 2008-11-23
thanks,hityct1!
回复
hityct1 2008-11-22
看看queue的定义吧:
In their implementation in the C++ Standard Template Library, queues take two template parameters:
template < class T, class Container = deque<T> > class queue;

Where the template parameters have the following meanings:
T: Type of the elements.
Container: Type of the underlying container object used to store and access the elements.

那么:
typedef list <int, allocator <int> > INTLIST; //等价于typedef list<int> INTLIST;
typedef queue<int,INTLIST > INTQUEUE;
它的Container是个list;估计这么定义是因为要频繁插入和删除(包括对中间的数据)。

typedef queue<int> INTQUEUE;
它的Container是个deque;只适合对队列的两头进行插入和删除。
回复
jieao111 2008-11-22
找本stl教材看看吧
回复
Non_Recursive 2008-11-22
up
回复
Rex_love_Burger 2008-11-22
msdn的下载区有stl中文指南下载,写得相当详细,建议你去下载一个!!
回复
jakqigle 2008-11-22
建议看看msdn或者找stl使用指南之类资料。
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-11-22 03:54
社区公告
暂无公告