c++ STL queue:deque+优先队列
发布时间:2020-12-16 09:13:01 所属栏目:百科 来源:网络整理
导读:/* queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的, 容器类型是可选的,默认为deque队列?? 类型。 一:定义queue(要有头文件#include queue) queueint q1;queuedouble q2; 二:基本函数 back()返回一个引用,指向队列的
/* 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() 返回优先队列对顶元素,返回优先队列中有最高优先级的元素
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将postgresql数组解包成行
- [cocos2dx学习笔记]用cocos2dx3.X完成塔防游戏王国保卫战--
- c# – 如何通过套接字发送外部库的可序列化对象?
- 为什么UnobtrusiveJavaScriptEnabled = true禁用我的ajax工
- c – 实现第一拟合算法
- Ruby如何评估双引号(又名“”)与String.new?
- 为Cocos2d-x增加带Button回调的系统级消息框(MessageBox)
- 如何在PostgreSQL中记录`PREPARE`语句?
- 如何将DatePicker添加到我的MVC3 C#站点
- Dojo学习笔记(9. dojo.graphics.color & dojo.uri.Uri)