利用priority_queue实现top K
2016-04-19 11:53
459 查看
#include <bits/stdc++.h> using namespace std; class fix_priority_queue { int max_size; priority_queue <int, vector<int>, greater<int> >q; public: fix_priority_queue( int max_size ) { this->max_size = max_size; } void add( int x ) { if ( q.size() < max_size ) { q.push( x ); }else{ int a = q.top(); if ( a < x ) { q.pop(); q.push( x ); } } } void pop() { q.pop(); } int top() { return(q.top() ); } bool empty() { return(q.empty() ); } }; int main() { fix_priority_queue q( 5 ); srand( time( 0 ) ); for ( int i = 0; i != 10; ++i ) { int a = rand(); printf( "%d ", a ); q.add( a ); } printf( "\n" ); while ( !q.empty() ) { printf( "%d ", q.top() ); q.pop(); } return(0); }
相关文章推荐
- js下读取或者设置input中的value值
- request.getParameterMap()的使用方法
- UICollectionView
- iOS 隐藏导航栏UINavigationBar黑线
- Integer.valueof()学习之享元模式
- 设置 UISearchBar 输入字体颜色 和 默认字体颜色
- UIScrollview--使用Autolayout添加约束
- UIUITextView设置类似于UITextField的placeholder
- [转]优化UITableViewCell高度计算的那些事
- 使用网站websequencediagrams在线画时序图
- Java Builder模式 初体验
- UIAlertView 基础篇
- iOS开发 贝塞尔曲线UIBezierPath
- Android酷炫实用的开源框架(UI框架)
- Parquet与ORC性能测试报告
- continue、break、return的区别
- 获得request、response对象的三种方法
- IOS中UIImage用代码压缩
- request.getHeader("x-forwarded-for")这是什么意思
- 自定义UILabel设置垂直方向的居上,居中,居下