C++优先队列的调用
2015-08-16 07:56
465 查看
</pre><pre name="code" class="cpp">/* 在头文件 #include<queue> 中 对于基本数据类型 还涉及头文件 #include<vector> 优先队列简单来说就是数据存入一个队列中,优先将队列中最大或最小的数放到队首,也就是下一次取的数是队列中最大或最小的。 */ #include<queue> #include<vector> #include<iostream> using namespace std; //#include<greater> using namespace std; struct A { int x,y; }; //运算符重载 bool operator < (A a1,A a2) { if(a1.x == a2.x) return a1.y>a2.y; return a1.x>a2.x; //先出小 } int main() { priority_queue<int> que; //优先从大到小(默认状态) //for(int i=0;i<10;i++) que.push(3); que.push(1); que.push(8); que.push(13); que.push(-9); for(int i=0;i<5;i++) { cout<<que.top()<<endl; que.pop(); } cout<<endl; priority_queue< int,vector<int>,greater<int> > qq; //优先从小到大 qq.push(3); qq.push(1); qq.push(8); qq.push(13); qq.push(-9); for(int i=0;i<5;i++) { cout<<qq.top()<<endl; qq.pop(); } cout<<endl; //优先队列存结构体 实现从小到大 priority_queue<A> pp; A a,b,c; a.x=1; a.y=3; pp.push(a); b.x=1; b.y=2; pp.push(b); c.x=3; c.y=4; pp.push(c); while(!pp.empty()) { cout<< pp.top().x <<" "<<pp.top().y<<endl; pp.pop(); } return 0; }
相关文章推荐
- C++基础---位操作符
- C++普通队列容器
- C语言指针的算术运算
- C++ Windows对象和MFC对象的区别
- [C语言][LeetCode][26]Remove Duplicates from Sorted Array
- [C语言][LeetCode][228]Summary Ranges
- 使用线性同余法生成伪随机数/序列(C++实现)
- c语言中scanf输入带空格的字符串以及scanf输入单个字符的问题
- poj1035 spell checker (简单的字符串查找题)
- Log4cpp:为中小型C++项目加上log支持
- iOS基础班之c语言学习复习查漏
- C++对象模型——对象的构造和解构(第六章)
- C语言/C++ 实现汉诺塔代码
- C++写数据到文件
- c++ public, protected, private成员变量,成员函数继承和访问规则实例代码
- C++对象模型——执行期语意学(第六章)
- C++中public,protected,private访问小结
- C语言 memcpy二维数组的复制
- 关于c++析构函数
- C语言-5