bfs中的队列相关函数

来源:互联网 发布:淘宝卖家在哪里发微淘 编辑:程序博客网 时间:2024/06/08 16:36

成员函数:

empty()判断队列空,当队列空时,返回true。
size()访问队列中的元素个数。
push()会将一个元素置入queue中。
front()会返回queue内的第一个元素(也就是第一个被置入的元素)。
back()会返回queue中最后一个元素(也就是最后被插入的元素)。

pop()会从queue中移除一个元素。


注意:

     pop()虽然会移除下一个元素,但是并不返回它,front()和back()返回下一个元素但并不移除该元素。


定义优先队列    priority_queue<node> Q;    
与普通队不同的是,取出首位元素不是Q.front(),而是使用Q.top();
struct  node
 { 
int x,y,step; 
friend bool operator<(node n1,node n2)
 
//大于是从小到大 
return n1.step>n2.step; 

};

队列还有双向队列,其中双向队列可以使用到一些组合的成员函数。

如:

   队列名.pop_back();

   队列名.pop_front();

指的就是,删除队列开始的一个元素,或者删除队列结尾的一个元素。


下面是一个大神级总结队列。

双向队列:http://blog.csdn.net/morewindows/article/details/6946811


单向队列:  http://blog.csdn.net/morewindows/article/details/6950917