1.queue基本用法
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main(){
//queue<int>q; //普通循环队列
//priority_queue<int> q; //优先队列(大根堆)
priority_queue<int,vector<int>,greater<int>>q; //小根堆
//队头出 队尾进
q.push(1);
q.push(2);
q.push(3);
q.pop();
//访问队头和队尾元素(普通队列)
//cout<<"队头元素:"<<q.front()<<"队尾元素:"<<q.back()<<endl;
//优先队列--访问堆顶元素
cout<<"队头元素:"<<q.top()<<endl;
}
2.deque基本用法
#include<iostream>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
using namespace std;
int main(){
//双端队列 对标vector
deque<int>q;
//2,1,3,4
q.push_front(1);
q.push_front(2);
q.push_back(3);
q.push_back(4);
//1,3
q.pop_front();
q.pop_back();
//第一个元素和最后一个元素
cout<<"第一个元素:"<<q.front()<<"最后一个元素: "<<q.back()<<endl;
cout<<"第一个元素:"<<*q.begin()<<"最后一个元素: "<<*--q.end()<<endl;
//迭代器
deque<int>::iterator it=q.begin();
while(it!=q.end()){
cout<<*it<<" ";
it++;
}
//正常输出
// for(auto x:q){
// cout<<x<<" ";
// }
}
3.stack基本用法
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
using namespace std;
int main(){
stack<int>stk;
stk.push(1);
stk.push(2);
stk.push(3);
stk.pop();
cout<<stk.top()<<endl;
}