c++ STL queue:deque+优先队列

Posted qingyuyyyyy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ STL queue:deque+优先队列相关的知识,希望对你有一定的参考价值。

/* queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,
容器类型是可选的,默认为deque队列   类型。
一:定义queue(要有头文件#include <queue>)
queue<int> q1;queue<double> q2;
二:基本函数
back()返回一个引用,指向队列的最后一个元素。
empty()函数返回真(true)如果队列为空,否则返回假(false)。
 front()返回队列第一个元素的引用。
 pop()函数删除队列的一个元素
 push() 在末尾加入一个元素
 size() 返回队列中元素的个数
三:示例代码
#include<bits/stdc++.h>
using namespace std;
int main()
    int e,n,m;
 queue<int> q1;
 for(int i=0;i<10;i++)
     q1.push(i);
 if(!q1.empty()) 
  cout<<"dui lie  bu kongn";
 n=q1.size();
 cout<<n<<endl; 
 m=q1.back();
 cout<<m<<endl; 
 for(int j=0;j<n;j++)     
 e=q1.front();
 cout<<e<<" ";   
 q1.pop();       
 cout<<endl; 
 if(q1.empty()) 
 cout<<"dui lie  bu kongn"; 
 system("PAUSE"); 
  return 0;

优先队列
优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。
但是它有一个特性,就是队列中最大的元素总是位于队首,
所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。
这点类似于给队列里的元素进行了由大到小的顺序排序。
元素的比较规则默认按元素值由大到小排序,可以重载“<”操作符来重新定义比较规则。
定义类型:与普通队列一样
 基本操作:
empty()      如果队列为空,则返回真
pop()    删除对顶元素,删除第一个元素
push()        加入一个元素
size()      返回优先队列中拥有的元素个数
top()     返回优先队列对顶元素,返回优先队列中有最高优先级的元素
 

以上是关于c++ STL queue:deque+优先队列的主要内容,如果未能解决你的问题,请参考以下文章

C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)

C++ stl queue(单端队列)和stl deque(双端队列)的区别(与循环队列的区别)

C++ STL容器

C++ STL 之 deque

C++ 常用 stl容器(vector向量,stack栈,queue队列,deque双向队列,map,set)

UVA 12100 打印队列(STL deque)