转:http://hi.baidu.com/xiaotiandm/item/bda34511cf9e99098fbde41a

调用的时候要有头文件: #include<stdlib.h> 或 #include<cstdlib> + #include<queue> 
详细用法:
定义一个queue的变量                       queue<Type> que 
查看是否为空范例                              que.empty()    是的话返回1,不是返回0;
从已有元素后面增加元素(入队)      que.push() 
现有元素的个数                                 que.size()
显示第一个元素                                 que.front()
显示最后一个元素                              que.back()
清除第一个元素 (出队)                  que.pop()

看一个例子:

#include <cstdlib>
#include <iostream>
#include <queue> 
using namespace std;
int main()

    queue<int> myQ;
    cout<< "现在 queue 是否 empty? "<< myQ.empty() << endl; 
    cout << "push 5, push 6, push 7" << endl;
    myQ.push(5); 
    myQ.push(6); 
    myQ.push(7); 
    cout << "现在 queue 的元素有几个? " << myQ.size() << endl; 
    cout << "现在 queue 的front为何? " << myQ.front() << endl; 
    cout << "现在 queue 的rear为何? " << myQ.back() << endl; 
    cout << "pop" << endl; myQ.pop(); 
    cout << "现在 queue 的元素有几个? " << myQ.size() << endl; 
    cout << "现在 queue 的front为何? " << myQ.front() << endl; 
    cout << "现在 queue 的rear为何? " << myQ.back() << endl; 
    system("PAUSE"); 
    return 0;
}

关于队列的知识;

使用queue之前,要先利用构造函数一个队列对象,才可以进行元素的入队,出队,取队首和队尾等操作;

(1)、queue() queue<int> q; 或者 queue<int>Q[10000];

(2)、queue(const queue&) 复制构造函数

例如:用一行代码利用queue对象q1,创建一个以双向链表为底层容器的queue对象q2

queue<int,list<int>>q1;

queue<int,list<int>>q2(q1);

(3)、元素入队 函数为:push()例如:q.push(3),意思是将3入队 ,注意队列的大小不预设

(4)、元素出队 函数为:pop()例如:q.pop()

(5)、取对头元素 函数为:front()

(6)、取队尾元素 函数为:back()

(7)、判断对空    函数为:empty()

(8)、队列的大小 函数为:size()返回队列的当前元素的个数

(9)、如何实现固定大小的queue队列

在每一次元素入队列前都判断当前的队列是否满,用双向链表做queue 的底层容器可以实现

例如:

#include<iostream>
#include<list>
#include<queue>
using namespace std;
#define QUEUE_SIZE 50 //固定大小;
int main()
{
queue<int,list<int>> q;
if(q.size(QUEUE_SIZE) )
   q.push(51);
if(q.size(QUEUE_SIZE) )
   q.push(36);
if(q.size(QUEUE_SIZE))
   q.push(28);
while(!q.empty() )
{
   cout<<q.front()<<endl;
   q.pop();
}
return 0;
}

#include<iostream>
#include<cstdio>
#include<queue>
#include<stdlib>
using namespace std;
int main()
{
register int i,j;
int m,n;
char c[6];
int x,y;
while(scanf("%d %d",&n,&m)!=EOF)
{
   queue<int> Q[10000];
   for(i=1;i<m;i++)
   {
    scanf("%s",&c);
    if(strcmp(c,"INT") == 0)
    {
     for(j=1;j<=n;j++)
     {
      while(!Q[j].empty())
      {
       Q[j].pop();
      }
      continue;
     }
    }
    if(strcmp(c,"PUSH")==0)
    {
     scanf("%d %d",&x,&y);
     Q[x].push(y);
     continue;
    }
    if(strcmp(c,"POP")==0)
    {
     scanf("%d ",&y);
     if(Q[y].empty)
     {
      printf("NULL\n");continue;
     }
     else
     {
      printf("%d\n",Q[y].front());
     }
     Q[y].pop;
    }
   }
}
return 0;
}

STL__queue_的应用的更多相关文章

  1. HDOJ1728 BFS【STL__queue_的应用】

    STL__queue_的应用 调用的时候要有头文件: #include<stdlib.h> 或 #include<cstdlib> + #include<queue> ...

随机推荐

  1. poll调用深入解析

    poll调用深入解析http://blog.csdn.net/zmxiangde_88/article/details/8099049 poll调用和select调用实现的功能一样,都是网络IO利用的 ...

  2. 关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10

    关于 调用 JNI JAR 的说明和注意事项,调用第三方 JAR SDK 和 翻译 安卓 JAVA 代码 的说明 V2015.6.10 转载请标明出处,否则死全家.选择[复制链接]即可得到出处. (* ...

  3. 在JS中,一个自定义函数如何调用另一个自定义函数中的变量

    function aa1511() { var chengshi="马鞍山"; var shengfen="安徽省"; return shengfen+&quo ...

  4. VC环境下编译OpenSSL(仅仅是个示例,网上还有许多相关文章)

    VC环境OpenSSL安装以及编程过程 SSL就是Secure Sockets Layer,是一种安全套接字协议,详情请参考链接中的介绍. 配置过程中需要生成一些mak文件,这些生成代码用perl脚本 ...

  5. <2>集腋成裘

    标量项: [root@wx03 2]# cat a1.pl unshift(@INC,"/root/big/2"); use Horse;; print $Horse::days; ...

  6. Android Studio显示行数

    Android Studio在打开的文件左側单击鼠标右键,也能像Eclipse一样设置显示代码行数,如图1.可是这边跟Eclipse有一个非常大的差别,Eclipse设置后,其余的相应文件也跟着生效, ...

  7. 远光软件ASP.NET笔试题小汇总

    ASP.NET笔试题是ASP.NET程序员面试必须经历的,一般会叫你填两个表 1个是你的详细信息表 1个是面试题答卷 两个都要注意反正面是否都有内容不要遗漏,如果考你机试一般也有两种,就是程序连接数据 ...

  8. webdynpro 下拉列表控件

    现在界面上添加下拉列表的控件DropDownByKey 在context中创建新的node,和属性DP 返回界面,绑定DP到控件DropDownByKey的SelectedKey 初始方法中代码如下: ...

  9. delphi实现图象灰度处理的3种方法

    灰度处理的方法主要有如下3种: 1.最大值法:使R.G.B的值等于3值中最大的一个,即:   R=G=B=max(R,G,B) 最大值法会使形成高亮度很高的灰度图象 var bitmap:tbitma ...

  10. cocos2d-x游戏开发系列教程-前言

    cocos2d-x游戏开发前景: 最近企业对于Cocos2D-X开发人才的用人需求很大,而且所提供的薪资相当可观. 为满足广大向往游戏开发行业同学的需求,特推出适合新手的Cocos2D-X手游开发教程 ...