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();          //将元素压入栈顶
经验分享 程序员 微信小程序 职场和发展