算法笔记6.5 queue & dequeue
原创
©著作权归作者所有:来自51CTO博客作者武大保安的原创作品,请联系作者获取转载授权,否则将追究法律责任
queue 队列 先进先出的容器
1.定义与访问
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q;
for(int i=1;i<=5;i++){
q.push(i);
}
printf("%d %d\n",q.front(),q.back());//只能访问首尾
return 0;
}
2.push,front,back,pop
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q;
for(int i=1;i<=5;i++){//1 2 3 4 5
q.push(i);
}
for(int i=0;i<3;i++){//4 5
q.pop();//队首出队
}
printf("%d %d\n",q.front(),q.back());//只能访问首尾
return 0;
}
3.empty size
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q;
cout<<q.empty()<<endl;
q.push(1);
cout<<q.empty()<<endl;
return 0;
}
deque 双端队列 可以在两端进行插入和删除
1、push_back()、push_front()、pop_back()、pop_front()
#include<iostream>
#include<deque>
using namespace std;
int main(){
deque<int> d;
d.push_back(1);
d.push_back(2);
d.push_back(3);
d.push_front(10);//d.insert(d.begin()+1, 10);
d.push_front(20);//d.insert(d.begin()+2, 20);
for(int i=0;i<d.size();i++) cout<<d[i]<<" ";
//输出: 20 10 1 2 3
return 0;
}
2、size(),clear()
#include<iostream>
#include<deque>
using namespace std;
int main(){
deque<int> d;
d.push_back(1);
d.push_back(2);
d.push_back(3);
cout<<d.size()<<endl;
d.clear();
cout<<d.size()<<endl;
return 0;
}