STL nth_element
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相关推荐
- 深海中的STL—nth_element
如果让你求区间第\(k\)大,你会怎么做呢? 主席树?确实是个不错的选择(不过像我这种垃圾还是乖乖打暴力吧) 在c++的stl库中,提供了nth_element这样一个函数 它的用法是nth_elem ...
- STL之nth_element__寻找第n大的元素
参考博客: STL nth_element神器 官方解释:http://www.cplusplus.com/reference/algorithm/nth_element/ nth_element(f ...
- BFPRT算法:时间复杂度O(n)求第k小的数字(分治算法+快排)
我自己搭建了博客,以后可能不太在CSDN上发博文了,https://www.qingdujun.com/ . 去年写了一篇<分治算法 求第kkk小元素 O(n)O(n)O(n) & O( ...
- 2017级算法模拟上机准备篇(一)
回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序 STL:sort() 简单题--I wanna ...
- STL中的nth_element()方法的使用
STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比 ...
- 利用向量叉积求三角形的面积(+STL:nth_element求第K大的数)
牛客寒假算法集训营2 https://ac.nowcoder.com/acm/contest/327/A A.处女座的签到题 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多 ...
- C++11标准模板(STL)- 算法(std::nth_element)
定义于头文件 <algorithm> 算法库提供大量用途的函数(例如查找.排序.计数.操作),它们在元素范围上操作.注意范围定义为 [first, last) ,其中 last 指代要查询 ...
- stl的nth_element
/************************************************* 在区间[first,last)之间的数,第n大的数放在nth位置, 比nth小的数放在之前,大的数 ...
- Effective STL 50条有效使用STL的经验笔记
Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...
最新文章
- TensorFlow官方课程开启,机器学习上车吧
- 组件方式开发 Web App全站 学习视频 分享
- golang interface传结构体
- IDEA 代码生成插件 CodeMaker
- 二分法(三种基本模版)
- github怎么删除已经发布的Releases
- 新时代大视频产业的底座,视频云创变了什么?
- 安卓扫一扫自动跳转软件_ipad软件使用技巧
- C#控件之Repeater控件使用
- 英伟达自动驾驶技术:用于自动驾驶汽车的端到端深度学习
- java 多线程 扫描,多线程扫描文件夹耗时方法分析
- inventor中齿条怎么画_涨知识干货|瀑布怎么画?山水画刀画中的八种分类
- POJ1315 UVA639 UVALive5325 Don't Get Rooked题解
- install mysql with source code
- Oracle10g删除
- ASP.NET服务器控件之视图状态
- 【雷达信号处理基础】第1讲 -- 雷达系统概述
- 图解三层交换机:局域网都用它来组网
- Riverbed为用户优化网络效能并保护数据安全
- 《东周列国志》第十六回 释槛囚鲍叔荐仲 战长勺曹刿败齐
热门文章
- Vuex-一个专为 Vue.js 应用程序开发的状态管理模式
- 中国互联网+果汁行业商业模式创新与投资机会深度研究报告
- 中国互联网+户外广告行业商业模式创新与投资机会深度研究报告
- C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)
- Jenkins实现SVN+Maven+Java项目的持续集成
- Dynamics CRM 导入导出数据
- Linux安全基础:shell及一些基础命令
- MongoDB(一):安装
- mysql启动后在哪里编程_启动mysql后怎么连接数据库
- 百度云api android,帮助文档首页/百度移动统计API/百度移动统计 Android版SDK - 百度开放云平台...