stack && queue && priority_queue 使用方法 (栈, 队列, 优先队列)
2015-09-05 10:08
686 查看
/** 贴下堆栈,优先队列的使用,竞赛中优先队列常会用到,前面两个 也经常用,但效率低,一般自己用数组写 */ #include <stack> #include <queue> using namespace std; int main() { //stack stack<int> s1; //定义一个int 型栈s1 s1.push(x); //x入栈 s1.pop(); //只删除栈顶元素,不返回栈顶元素 s1.top(); //返回栈顶元素 s1.empty(); //当栈空时返回 true s1.size(); //返回栈中元素个数 //queue queue<int> q1; q1.push(x); //将x 接到队列的末端 q1.pop(); //删除队首元素,并不返回弹出元素 q1.front(); //访问队首元素 q1.back(); //访问队尾元素 q1.empty(); //队空时返回true; q1.size(); //返回队列中元素的个数 //priority_queue(优先队列) 头文件<queue> (强烈推荐 log n) /** 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。 但是它有一个特性,就是队列中最大元素总是位于队首,所以出队时, 并非按照先进先出的原则,而是将当前队列中优先级最高的元素出队。 元素比较默认按照元素由大到小的顺序,也可以重载 “<” 操作符来 重新定义比较规则。 */ //基本操作 q.push(); q.top(); q.pop(); //改为小顶堆 priority_queue<int, vector<int>, greater<int> > que; //greater<int>后留空格 /** 如果优先队列的元素类型是结构体,可以通过在结构体中重载 “<” 操作符的方法来修改优先队列的优先性 */ struct Info { string name; float score; } bool operator < (const Info &a) const { return a.score < score; } //按照score 由小到大的进行排列 return 0; } 收藏于 2012-01-08 来自于百度空间
相关文章推荐
- leetcode_Unique Binary Search Trees_easy
- 【UI初级 连载四】--------UI常用控件
- uetitor上传图片及附件问题
- UI连载十-----------表视图单元格定制
- 【UI初级 连载三】--------UIWindow 和 UIView 的使用
- Number Sequence(hdu 5014)
- IEnumberable与IQueryable区别
- UI:自定义键盘的实现
- 常规功能和模块自定义系统 (cfcmms)—007Extjs的配置文件和自定义ui
- [LeetCode]Longest Consecutive Sequence
- Bequeath Connection and SYS Logon
- git 解决The current branch is not configured for pull No value for key branch.master.merge found in co
- 双飞翼布局(圣杯布局)介绍-始于淘宝UED
- UVA 11235-Frequent values-RMQ(st表)+游程编码
- UICollectionView的使用----
- ioS开发之UI基础--UITableView简单了解(个人笔记)
- IOS开发UI—纯代码实现控件及其基本属性
- Atitit.swt 线程调用ui控件的方法
- 自定义UIActionSheet
- Atitit.swt 线程调用ui控件的方法