150723培训心得(queue)

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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 12:58:30

150723培训心得(queue)的相关文章

参加老男孩linux培训心得

参加老男孩linux培训心得 时间如白驹过隙,已经不知不觉来到老男孩培训已经三个月了.在这三个月中我渐渐得到了成长,专业技术成长,以及为人处事之道与思想的提高. 我一共就总结以下了三点     一.思想 在我刚来老男孩的时候,老师天天上课前讲一段思想,我当时不太明白,不赶紧上课,讲这干啥呢?而且老师早一点讲完,又可以招下一批学生了,老讲思想,这不是自断财路么?随着时间的流逝,渐渐的我悟懂了点.人在那里都可以学技术,但是学会了技术没有思想,一旦来了新事物,就会接受的很慢.尤其在互联网这个圈子里,软

在IT择善培训机构的培训心得

人的一生中都是不断学习来提高 自己,俗话说:“知识是人类不断进步的阶梯”也是“飞向天空的翅膀”.       本人因工作的加入了择善进行学习,能成为择善的学员,不知不觉来到择善1个多月,回想起这1个多月的时间里,我从零基础进行系统性学习学到了不少东西;之前也零零散散在学习过一些VB语言和C语言,在择善培训在这段时间里面我的编程能力得到了显著的提升,逻辑思维能力也得到了质的提升.当然,在培训在过程中也有遇到不少的困难,我也认识到了自己还有很多理论知识不够扎实,基础知识没有理清楚,老师争对这些问题提

老男孩教育培训心得体会

今天是2015年12月28号,算算我来老男孩教育培训已经108天了.每天紧张忙碌但又充实的学习生活,感觉到时间过得太快了,感觉到时间真的是一点也不够用. 回想起来到老男孩教育的第一天,感觉到一切就好像发生在昨天一样.记得当时同学们一个个的自我介绍,还有那自己在这里许下的诺言.我一直记在心里,它将一直鞭策着我必须不断的努力学习.这三个半月的时间,我也就是这么过来的.真的,在这里学习让我仿佛感觉到自己又回到了高中的生活.同时也让自己感慨不已.为什么自己没早点认识到老男孩教育,认识到oldboy,早一

参加老男孩教育培训心得

来老男孩教育学习一转眼三个月已经过去了,想当初狠心辞掉工作,一个人北漂来老男孩学习,之前心里总是有一种放不下,老男孩到底靠谱么?当时感觉就是赌了一把,因为之前在51cto看过他的学习视频,四.五个月会让一个0基础的人学会linux运维,听了几节课感觉还是很好接受的,当时就下定决心,来北京试一试! 然而,到了这边感觉我的选择是非常正确的,来到老男孩教育学习,三个月的时间,感觉每天都是很充实的,然而压力也是很大,特别是班级牛人大神什么的特别多,感觉自己一个菜鸟,真心好累!有时候有压力才会有动力嘛,每

丹东市国土资源信息中心派专业技术人员外出学习培训心得

丹东市国土资源信息中心派专业技术人员外出学习 来源:丹东市国土资源局 作者: 时间:2015-12-08 10:25:00 丹东市国土资源信息中心根据工作需要,近日派出2名技术人员到中科地信(北京)遥感信息技术研究院学习.信息中心承担国土资源专项工作较多,专项工作技术性强.软件系统复杂多样,在日常工作中经常遇到难解问题,多项工作都是在干中学.学中干,遇到难题经常需要邀请其他技术单位做指导.根据这一实际情况,信息中心派2人到中科地信(北京)遥感信息技术研究院学习.该院是地理信息系统技术在地籍管理.

150720培训心得

1.大数运算 大数运算(即高精度运算),也就是指那些超过规定范围的数值运算(int范围为-22亿--+22亿),要利用数组来进行运算, 数组一位存储数值的一位,然后对应位数直接进行运算. 例如两数相加,输入的两个数值是用字符串形式,然后将其逆序转化为int型,然后顺序进行对位直接运算,然后再顺序判断数组 每一位的值是否需要进位并进位,然后逆序输出,输出的时候要从数组最大位开始判断并找到第一个非零数(目的是略去前面不必 要的零) 先数组对位直接相加,然后再判断数组每一位的值是否需要进位并直接进位.

150725培训心得(vector)

vector(不定长数组) 在C语言中,数组定义必须给定长度,但是有的时候太浪费空间,可以利用STL中vector函数来解决这个问题. 1 基本操作 (1)头文件#include<vector> (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); 尾部删除数字:vec.pop_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;      记住下标是从0开始的. (

150727培训心得(Stack)

栈(statck) 这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶元素).取得栈顶元素等操作. 在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了.因此实现非常的方便.下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个常用操作函数(top().push().pop(). size().empty() ),很好记的

150721培训心得(字典树)

字典树: 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高. #define MAX 26 struct Trie { Trie *next[MAX]; int v; //根据需要变化 }root; next是表示每层有多少种类的数,如果只是小写字母,则26即可,若改为大小写字母,则是52,若再加上数字,则是62了,这里