zoukankan      html  css  js  c++  java
  • 获得最小的topK

    set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。
    sets和multiset内部以平衡二叉树实现


    #include<iostream> #include <stdio.h> #include <stack> #include <vector> #include <set> using namespace std; typedef multiset<int, greater<int> > intSet; typedef multiset<int, greater<int> >::iterator setIterator; void get_least_numbers(const vector<int>& data, intSet& least_numbers, int k) { least_numbers.clear(); if (k < 1 || data.size() < k) { return; } vector<int>::const_iterator iter = data.begin(); for(; iter != data.end(); iter++) { if (least_numbers.size() < k) { least_numbers.insert(*iter); } else { setIterator iter_greatest = least_numbers.begin(); if (*iter < *(least_numbers.begin())) { least_numbers.erase(iter_greatest); least_numbers.insert(*iter); } } } } int main() { int a[8] = {4, 2, 6, 7, 9, 5, 1, 3}; int length = sizeof(a) / sizeof(a[0]); const vector<int> data(a, a+length); multiset<int, greater<int> > least_numbers; get_least_numbers(data, least_numbers, 3); for(setIterator it=least_numbers.begin(); it != least_numbers.end(); it++) { cout << *it << " " << endl; } return 0; }
  • 相关阅读:
    Spring Mvc和Mybatis的多数据库访问配置过程
    Git下解决冲突
    安装Git
    数据库优化
    Ubuntu版 微信
    ssh框架简介
    写代码的习惯
    CentOS 7 安装 docker 并搭建私有仓库
    IPv4地址分类及特征
    Xcode 7.0 Could not find developer disk image
  • 原文地址:https://www.cnblogs.com/TMatrix52/p/12658569.html
Copyright © 2011-2022 走看看