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;
}

算法笔记6.5 queue & dequeue_ios

 

 

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;
}

算法笔记6.5 queue & dequeue_STL_02

 

 

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;
}

算法笔记6.5 queue & dequeue_queue_03

 

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;
}

算法笔记6.5 queue & dequeue_#include_04

 

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;
}

算法笔记6.5 queue & dequeue_STL_05