天天看点

算法笔记6.5 queue & dequeue

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 &amp; dequeue

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 &amp; dequeue

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 &amp; dequeue

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 &amp; dequeue

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 &amp; dequeue