STL中的nth_element()方法的使用
时间:2022-05-07
本文章向大家介绍STL中的nth_element()方法的使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的,下面是这个方法的具体使用方法.
1 #include <iostream>
2
3 #include <algorithm>
4
5 #include <functional>
6
7 #include <vector>
8
9 using namespace std;
10
11
12
13 int main()
14
15 {
16
17 const int VECTOR_SIZE = 50 ;
18
19
20
21 vector<int> Numbers(VECTOR_SIZE) ;
22
23
24
25 vector<int>::iterator start, end, it ;
26
27
28
29 // Initialize vector Numbers
30
31 for(int i=0;i<50;++i){
32
33 Numbers[i]=i;
34
35 }
36
37 /*由于赋值时是有序的,下面random_shuffle()方法将这些数据的顺序打乱*/
38
39 random_shuffle(Numbers.begin(),Numbers.end());
40
41
42
43 // location of first element of Numbers
44
45 start = Numbers.begin() ;
46
47
48
49 // one past the location last element of Numbers
50
51 end = Numbers.end() ;
52
53
54
55 cout << "Before calling nth_element/n" << endl ;
56
57
58
59 // print content of Numbers
60
61 cout << "Numbers { " ;
62
63 for(it = start; it != end; it++)
64
65 cout << *it << " " ;
66
67 cout << " }/n" << endl ;
68
69
70
71 /*
72
73 * partition the elements by the 8th element,
74
75 *(notice that 0th is the first element)
76
77 */
78
79 nth_element(start, start+8, end) ;
80
81
82
83 cout << "After calling nth_element/n" << endl ;
84
85
86
87 cout << "Numbers { " ;
88
89 for(it = start; it != end; it++)
90
91 cout << *it << " " ;
92
93 cout << " }/n" << endl ;
94
95 system("pause");
96
97 }
- 基础篇章:关于 React Native之 ActivityIndicator 组件的讲解
- 基础篇章:关于 React Native 之 KeyboardAvoidingView 组件的讲解
- 基础篇章:关于 React Native 之 Slider 组件的讲解
- Java9 中的 9 个新特性
- ELK 集群 + X-Pack + Redis 集群 + Nginx ,实时日志(数据)搜集和分析的监控系统,简单上手使用
- 基础篇章:关于 React Native 之 Modal 组件的讲解
- 搭建高吞吐量 Kafka 分布式发布订阅消息 集群
- 你真的会用Retrofit2吗?Retrofit2完全教程
- 线程管理之获取和设置线程信息
- 线程创建和运行
- CentOs7.3 安装 MySQL 5.7.19 二进制版本
- Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava
- 3.Linux用户权限管理之三(文件与权限的设定)
- CentOs7.3 搭建 MySQL 5.7.19 主从复制,以及复制实现细节分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Flutter 实战】自定义动画-涟漪和雷达扫描
- Flutter —布局系统概述
- 【Flutter 实战】全局点击空白处隐藏键盘
- 我对Flutter的第一次失望
- 【Flutter 实战】各种各样形状的组件
- 『Flutter-绘制篇』实现炫酷的雨雪特效
- 图书管理系统(Servlet+Jsp+Java+Mysql,附下载演示地址)
- Vuex 映射完全指南
- 我们是如何改进YOLOv3进行红外小目标检测的?
- Unity3D网络通讯(三)-- HttpRestful请求的简单封装
- 详解Elasticsearch 的性能优化
- console.log的那件事
- Codeforces Round #668 (Div. 2)A-D
- nodejs源码解析之udp服务器
- LeetCode | 35.搜索插入位置