nth_element(first,nth,last)

first,last 第一个和最后一个迭代器,也可以直接用数组的位置。 
nth,要定位的第nn 个元素,能对它进行随机访问.

将第n_thn_th 元素放到它该放的位置上,左边元素都小于它,右边元素都大于它.

测试代码:

http://www.cplusplus.com/reference/algorithm/nth_element/

// nth_element example
#include <iostream>     // std::cout
#include <algorithm>    // std::nth_element, std::random_shuffle
#include <vector>       // std::vectorbool myfunction (int i,int j) { return (i<j); }int main () {std::vector<int> myvector;// set some values:for (int i=1; i<10; i++) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9std::random_shuffle (myvector.begin(), myvector.end());// using default comparison (operator <):std::nth_element (myvector.begin(), myvector.begin()+3, myvector.end());// using function as compstd::nth_element (myvector.begin(), myvector.begin()+3, myvector.end(),myfunction);// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}

输出:

myvector contains: 3 1 4 2 5 6 9 7 8

也就是找到第4大的数,但是左右两侧不一定排序

nth_element特别适合找中位数

 std::nth_element(_vec.begin(), _vec.begin() + n - 1, _vec.end());

STL nth_element相关推荐

  1. 深海中的STL—nth_element

    如果让你求区间第\(k\)大,你会怎么做呢? 主席树?确实是个不错的选择(不过像我这种垃圾还是乖乖打暴力吧) 在c++的stl库中,提供了nth_element这样一个函数 它的用法是nth_elem ...

  2. STL之nth_element__寻找第n大的元素

    参考博客: STL nth_element神器 官方解释:http://www.cplusplus.com/reference/algorithm/nth_element/ nth_element(f ...

  3. BFPRT算法:时间复杂度O(n)求第k小的数字(分治算法+快排)

    我自己搭建了博客,以后可能不太在CSDN上发博文了,https://www.qingdujun.com/ . 去年写了一篇<分治算法 求第kkk小元素 O(n)O(n)O(n) & O( ...

  4. 2017级算法模拟上机准备篇(一)

    回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序  STL:sort() 简单题--I wanna ...

  5. STL中的nth_element()方法的使用

    STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比 ...

  6. 利用向量叉积求三角形的面积(+STL:nth_element求第K大的数)

    牛客寒假算法集训营2 https://ac.nowcoder.com/acm/contest/327/A A.处女座的签到题 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多 ...

  7. C++11标准模板(STL)- 算法(std::nth_element)

    定义于头文件 <algorithm> 算法库提供大量用途的函数(例如查找.排序.计数.操作),它们在元素范围上操作.注意范围定义为 [first, last) ,其中 last 指代要查询 ...

  8. stl的nth_element

    /************************************************* 在区间[first,last)之间的数,第n大的数放在nth位置, 比nth小的数放在之前,大的数 ...

  9. Effective STL 50条有效使用STL的经验笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

最新文章

  1. TensorFlow官方课程开启,机器学习上车吧
  2. 组件方式开发 Web App全站 学习视频 分享
  3. golang interface传结构体
  4. IDEA 代码生成插件 CodeMaker
  5. 二分法(三种基本模版)
  6. github怎么删除已经发布的Releases
  7. 新时代大视频产业的底座,视频云创变了什么?
  8. 安卓扫一扫自动跳转软件_ipad软件使用技巧
  9. C#控件之Repeater控件使用
  10. 英伟达自动驾驶技术:用于自动驾驶汽车的端到端深度学习
  11. java 多线程 扫描,多线程扫描文件夹耗时方法分析
  12. inventor中齿条怎么画_涨知识干货|瀑布怎么画?山水画刀画中的八种分类
  13. POJ1315 UVA639 UVALive5325 Don't Get Rooked题解
  14. install mysql with source code
  15. Oracle10g删除
  16. ASP.NET服务器控件之视图状态
  17. 【雷达信号处理基础】第1讲 -- 雷达系统概述
  18. 图解三层交换机:局域网都用它来组网
  19. Riverbed为用户优化网络效能并保护数据安全
  20. 《东周列国志》第十六回 释槛囚鲍叔荐仲 战长勺曹刿败齐

热门文章

  1. Vuex-一个专为 Vue.js 应用程序开发的状态管理模式
  2. 中国互联网+果汁行业商业模式创新与投资机会深度研究报告
  3. 中国互联网+户外广告行业商业模式创新与投资机会深度研究报告
  4. C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
  5. Jenkins实现SVN+Maven+Java项目的持续集成
  6. Dynamics CRM 导入导出数据
  7. Linux安全基础:shell及一些基础命令
  8. MongoDB(一):安装
  9. mysql启动后在哪里编程_启动mysql后怎么连接数据库
  10. 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...