http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html
参考:http://www.cppblog.com/zhenglinbo/archive/2012/09/18/191170.html
当然是使用c++中的STL 的queue啦.下面简要介绍一下使用方法. 
1 准备工作 头文件 #include<queue> 
2 
声明和定义的方法.STL的队列是泛型模板,支持任何内置和构造类型. 
  比如对于刚才那个牛奶问题.我把状态存入队列的话,我首先定义一个包含3个瓶子状态的结构. 
struct sta {int a,b,c;}; 
然后创建一个这个样的队列,方法是 
queue<sta> p;p就是这个队列啦.其中 
<>中指定的是队列元素的类型,根据需要可以使用 int,char等等任意类型(void除外吧). 
这里的p理论上是无限长度的,尽情使用,不用怕越界. 
3 使用 一个队列我们只适用一个头元素而已.头元素使用的方法是 p.front(); 
注意是以函数方法的形式获得头元素的. 
具体使用还可以int kkk=p.front().a;也可以 sta ppp=p.front(); 
4 插入一个元素的方法是push(),vector,list用的都是push_back(),这个注意. 
如果获得一个新的元素,想插入到队列末尾可以这样 
sta a={1,2,3}; 
p.push(a); 
5 
宽搜的结束条件可能是队列中没有元素了,如何判断队列中的元素没有了呢? 
p.empty();空就返回true 
6 
有时候你需要一个队尾元素,可以使用p.back(); 
参考C++STL标准库中对了的使用方法,布布扣,bubuko.com
原文:http://www.cnblogs.com/tianxia2s/p/3849896.html