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模糊查询防止通配符查询