STL-priority_queue

原创 2016年05月30日 16:25:25

参考http://www.cplusplus.com/reference/queue/priority_queue/priority_queue/

347. Top K Frequent Elements

most votes:

class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int,int> map;
        for(int num : nums){
            map[num]++; 
        }

        vector<int> res;
        // pair<first, second>: first is frequency,  second is number
        priority_queue<pair<int,int>> pq; 
        for(auto it = map.begin(); it != map.end(); it++){
            pq.push(make_pair(it->second, it->first));
            if(pq.size() > (int)map.size() - k){
                res.push_back(pq.top().second);
                pq.pop();
            }
        }
        return res;
    }
};
  1. unordered_map < int, int > //value初始为0

  2. priority_queue < pair < int, int> >

【priority_queue】默认从大到小

top() : return the greatest element.

pop() : pop the greatest element.

【priority_queue排序】

默认的排序函数:
pair< int, int > 在pair中从第一个元素到最后一个元素为基排序

If you do not specify your own comparator, sorting is done by a built-in function compare. From first member to last member in pair. compare works for many types of values, ordering them in one particular way: increasing numeric order for numbers; lexicographic order (aka dictionary order) for strings, symbols, and keywords; shortest-to-longest order by Clojure vectors, with lexicographic ordering among equal length vectors.

priority_queue < int, vector < int >, greater< int >() > //改为从小到大

STL中priority_queue

  • 2011年03月07日 12:32
  • 34KB
  • 下载

STL常用函数复习之————priority_queue

//priority_queue 优先队列 //队列中最大的元素总是位于队首,出队时先出最大的元素 (优先队列是 从大到小 排列)(可以重载 < 重新定义比较规则) #include using na...

C++优先队列解决哈夫曼(Huffmam)编码问题 (STL priority_queue)

优先队列解决哈夫曼(Huffmam)编码问题 (STL priority_queue)

【STL学习】优先级队列Priority Queue详解与C++编程实现

优先级队列Priority Queue介绍 优先级队列是一个拥有权值观念的queue。它允许在底端添加元素、在顶端去除元素、删除元素。 优先级队列内部的元素并不是按照添加的顺序排列,而是自...

看病要排队 (HDU 1873)—— STL priority_queue(重载)

这道题做了我挺久,主要是优先队列中要用到结构体类型,而我对结构体不是特别熟。。。 当然,最后还是看了下别人的代码,最终才写出来。。。 只是对于operator...

STL系列之五 priority_queue 优先级队列

priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元...

c++之STL(8)优先级队列 priority_queue

本文是听的网络课程,而记录下来的学习心得。 自适应容器(容器适配器):不能使用list 特点:数据中最大的放的是队首 从队首拿出来的数据始终是最大的 两种优先级队列: 最大值...

STL的priority_queue及其背后的heap读书笔记

今天继续记录一下优先队列(priority_queue)的感想。其实优先队列的本质就是一个堆,STL中默认是大根堆(大顶堆)。在学习数据结构的堆排序的时候,已经接触过堆的相关性质了,这里就不展开讲堆了...

STL之优先级队列priority_queue

priority_queue是一个拥有权值观念的queue,它允许加入新元素,移除旧元素,审视元素值。 由于是个queue,所以只允许低端加入元素,并从顶端取出元素。缺省情况下priority_qu...

[转载] STL 之 priority_queue 优先级队列

priority_queue 介绍 priority_queue 优先队列的核心操作是支持在常量时间内获得最优先的元素。priority_queue 的难点就在于如何构造优先队列,更具体的说是如何使用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL-priority_queue
举报原因:
原因补充:

(最多只允许输入30个字)