queue队列容器
【queue的定义】
queue的头文件:#include<queue>
定义queue<int>q;
【queue的性质】
queue队列容器是一个先进先出的线性存储表,元素的插入只能在队尾,元素的删除只能在队首。
【queue的函数】
queue<int>q;
1. q.push(x) 插入元素x(即入队)
2. q.pop() 删除队首元素(即出队)
3. q.front() 读取队首元素
4. q.back() 读取队尾元素
5. q.empty() 判断队列是否为空
6. q.size() 求队列元素的个数
【queue的基本操作】
#include<queue>
#include<iostream>
using namespace std;
int main()
{
// queue队列容器是一个先进先出的储存表,元素的插入只能在队尾,元素的删除只能在队首
queue<int>q;
// push()入队,尾部插入
q.push(1);
q.push(2);
q.push(3);
q.push(9);
// size()求队列的长度
cout<<q.size()<<endl;
// empty() 判断是否为空,空返回1
cout<<q.empty()<<endl;
// front()读取队首元素
cout<<q.front()<<endl;
// back() 读取队尾元素
cout<<q.back()<<endl;
while(!q.empty())
{
cout<<q.front()<<" ";
// pop()队首元素出队
q.pop();
}
cout<<endl;
return 0;
}
priority_queue优先队列容器
【priority_queue的性质】
priority_queue优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它与queue有所不同,priority并非按先进先出的原则进行出队,而是将当前队列最大的元素位于队首然后出队。队列中元素默认为按元素的值由大到小排序。
【priority_queue的基本操作】
#include<queue>
#include<iostream>
using namespace std;
int main()
{
priority_queue<int>pq;
pq.push(1);
pq.push(2);
pq.push(3);
pq.push(9);
cout<<pq.size()<<endl;
// 所有元素出队,删除所有元素
while(!pq.empty())
{
// top()输出当前队首元素
cout<<pq.top()<<" ";
// pop()出队,删除元素
pq.pop();
}
cout<<endl;
return 0;
}