c++的队列基本操作(queue pair类型) c++栈的操作
题目请见:全球变暖
队列
queue<Type> q; //定义队列,Type为数据类型,如int,float,char等 q. push(item); //把item放进队列 q.front(); //返回队首元素,但不会删除 q.pop(); //删除队首元素 q.back(); //返回队尾元素 q.size(); //返回元素个数 q.empty(); //检查队列是否为空
STL队列基础题
根据输入的操作命令,操作队列:1 入队、2出队并输出、3 计算队中元素个数并输出。1≤N≤50。
注意点:
#include <bits/stdc++.h>
using namespace std;
int main()
{
queue<int> q;
int n;
cin>>n;
for(int i=1;i<=n;i++){
int a;
cin>>a;
switch(a){
case 1:
int x;
cin>>x;
q.push(x);//把x放入队列
break;
case 2://把队头元素然后输出 出队
if(!q.empty()){
cout << q.front() <<endl; //front返回对头 但不会删除
q.pop();
//队列的输出?
}
else{
cout<<"no"<<endl;
}
break;
case 3:
cout << q.size() <<endl;
break;
}
}
return 0;
}
pair类型
一般当一个对象有多个属性的时候,我们会用结构体stuct写多个属性,而当只有两个属性的时候,就可以使用pair. 使用方法:
pair<type,type> name;
比如:
pair<int,int> P; //对象P有两个属性,都是int类型
而且,这里类型一般不做限制,所以自己定义的类型一样可以使用。 访问方法: pair类型有两个属性值,一个first,一个second
int x=P.first; //访问P的第一个属性值 int y=P.second; //访问P的第二个属性值
比如迷宫里的一个点,对这个点进行广度优先搜索,则要进行上下左右四个变化,简化为两个既左移多少,右移多少.
栈
stack< int > s; //定义 s.empty(); //如果栈为空则返回true, 否则返回false; s.size(); //返回栈中元素的个数 s.top(); //返回栈顶元素, 但不删除该元素 s.pop(); //弹出栈顶元素, 但不返回其值 s.push(); //将元素压入栈顶
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
MyBatis模糊查询防止通配符查询
