队列
题目:http://www.dotcpp.com/oj/problem1895.html?tdsourcetag=s_pcqq_aiomsg
实验代码
#include<iostream>//cin cout;
#include<algorithm>
#include<queue>
using namespace std;
int n;//操作次数
int a;//操作类型
int b;// 操作元素
queue<int> que;//创建一个新的队列 ;
int main()
{
cin>>n;
for(int i=0;i<n;++i)
{
cin>>a;
if(a==1)
{
cin>>b;//输入元素 ;
que.push(b);//压入队列 ;
}
else if(a==2)
{
if (que.empty())//队列是否为空集; ture,false。 //que.size()==0;
{
cout<<"No"<<endl;
return 1;
}
else
{
cout << que.front() << endl;
que.pop();
}
}
else if(a==3)
cout<<que.size()<<endl;
}
return 0;
} 知识点。
que.size() 访问队列多少元素
que.front() 访问队首元素
que.back() 访问队尾元素
que.push(val) 向队尾插入元素
que.pop() 弹出队首元素
que.empty() 队列是否为空 如果为空 返回True 否则false
认识总结
程序刚开始因c++有队列头文件,因此需要创建一个队列,即代码queue <int> que </int>,创建完毕后队列为空,键入cin>>b(输入元素) que.push(b)(压入队列 ),之后,队列里存在键入的元素。当键入2时,程序应判断队列中是否为空集,因此用if条件语句,即 if (que.empty()) (空为0即false反之为ture)最后输出 cout<<que.size()<<endl得到队列中元素个数。
运行过程
因c++刚开始学习所以有一些基础语法掌握不牢固,比如cin使用时不停使用endl结尾导致编译错误。
删除之后运行结果正常。
以及输出字符串No时没有使用双引号导致编译错误。
程序cin>>b必须在if(a==1)条件里面运行,而不能和a一起输入,原因是因为只有条件1下有b的输入。
这样编写会导致程序运行错误而无法正确得出结果,b的输入会导致程序混乱。
经过最后的编写得到的正确运行结果:

京公网安备 11010502036488号