队列-简介:
队列类型,同栈类型相比,队列不像栈,队列只能取队首的值:如下图:
点击查看——栈:http://blog.bccn.net/return_0/66944
队列-声明:
同栈一样,不过关键词换了一下:
queue</*数据结构*/>/*栈名*/;
可见栈的关键词(也不是关键词)就是‘queue’不过,在声明栈类之前,必须包含头文件:#include<queue>才能保证不出错。
队列-使用:
相比起声明,大家更关心的肯定是——怎么用呢?只需掌握以下几个成员函数即可:
1.push()/*压入值*/
格式:/*队列名*/.push(/*要压入的元素*/);
例:a.push(6);
2.pop()/*弹出值,记住,一弹就回不来了!*/
格式:/*队列名*/.pop();
例:a.pop();
3.front()/*获取队前的值*/
格式:/*队列名*/.front();
例:int f=a.front();
4.back()/*获取队尾的值*/
格式:/*队列名*/.back();
例:int b=a.back();
5.size()/*测量队列的长度*/
格式:/*队名*/.size();
例:int lent=a.size();
6.empty()/*判定队列是否空,若为空,返回true,若为非空,返回false*/
格式:/*队名*/.empty();
例:bool flag=a.empty();
队列-实战:
https://noi.top/questions/2653:队列消消乐
题目描述:
输入格式
输出格式
数据范围
实战样例
sample input
8
2 12 4 0 6 4 8 24
sample outputs
12
实战题解
#include<bits/stdc++.h>
using namespace std;
queue <int> a;
int main(){
int n,t,sc=0;
cin>>n;
cin>>t;
a.push(t);
for(int i=1;i<n;i++){
cin>>t;
if(!a.empty()&&abs(t-a.front())<10){
sc+=abs(t-a.front());
a.pop();
}
else{
a.push(t);
}
}
cout<<sc;
return 0;
}