首页 技术 正文
技术 2022年11月16日
0 收藏 990 点赞 3,294 浏览 1391 个字

queue(STL中函数,就是指队列)

#include <iostream>

#include <queue>

using namespace std;        //这几个头文件不可缺少

int main()

{

queue<类型(如int)> q; //使用前需定义一个queue变量,且定义时已经初始化

while(!q.empty()) q.pop(); //反复使用时,用这个初始化(空则返回1,不空返回0)

q.push(1); //进队列

q.pop(); //出队列

int v=q.front(); //得到队首的值

int s=q.size(); //得到队列里元素个数

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()返回队列的当前元素的个数

代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<queue>
using namespace std;
int sta[110000];
int map[110000][3];
int ans[110000];
int main()
{
int m;
int n,s;
int i,j,k;
int now;
queue<int>q;//定义int型队列q
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&n,&s);
q.push(s);//将s入队
for(i=1;i<n;i++)
{
map[i][0]=1;
scanf("%d%d",&map[i][1],&map[i][2]);
}
memset(ans,0,sizeof(ans));
ans[s]=-1;
while(!q.empty())//q.empty()推断是否队空,空则返回1。不空则返回0
{
now=q.front();//取队首数据
q.pop();//出队
for(i=1;i<n;i++)
{
if(map[i][0]&&map[i][1]==now)
{
q.push(map[i][2]);
ans[map[i][2]]=now;
map[i][0]=0;
}
else if(map[i][0]&&map[i][2]==now)
{
q.push(map[i][1]);
ans[map[i][1]]=now;
map[i][0]=0;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d",ans[i]);
if(i!=n)
printf(" ");
else
printf("\n");
}
}
return 0;
}

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,505
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844