C++ STL算法nth_element(36)
2022/1/12 14:33:28
本文主要是介绍C++ STL算法nth_element(36),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
函数原型
template<class _RanIt> inline void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last) template<class _RanIt, class _Pr> inline void nth_element(_RanIt _First, _RanIt _Nth, _RanIt _Last, _Pr _Pred)
nth_element仅排序第n个元素(从0开始索引),即将位置n(从0开始)的元素放在第n大的位置,处理完之后,默认排在它前面的元素都不比它大,排在它后面的元素都不比它小。
[first,nth)中的元素都是不大于array[nth]的,[nth, last)中的元素都是不小于array[nth]的。
关注第n个,只保证小于该值的元素在其左边,大于等于的在其右边,但并不保证其完全有序。
参数
first last 输入容器头、尾
nth 第n个元素
pred 函数指针或函数对象或lambda表达式
不带谓词
#include <iostream> #include <algorithm> #include <functional> #include <vector> #include <string> #include <iterator> #include <array> #include <sstream> int main() { std::vector<int> c{1, 3, 7, 4, 10, 8, 19, 2, 3, 4, 75, 8}; std::nth_element(std::begin(c), std::begin(c) + 5, std::end(c)); std::copy(std::begin(c), std::end(c), std::ostream_iterator<int>(std::cout, "; ")); std::cout << std::endl; return -1; } //输出 1; 2; 3; 3; 4; 4; 7; 8; 8; 10; 19; 75;
带谓词
#include <iostream> #include <algorithm> #include <functional> #include <vector> #include <string> #include <iterator> #include <array> #include <sstream> int main() { std::vector<int> c{1, 3, 7, 4, 10, 8, 19, 2, 3, 4, 75, 8}; std::nth_element(std::begin(c), std::begin(c) + 5, std::end(c), std::greater<int>()); std::copy(std::begin(c), std::end(c), std::ostream_iterator<int>(std::cout, "; ")); std::cout << std::endl; return -1; } //输出 75; 19; 10; 8; 8; 7; 4; 4; 3; 3; 2; 1;
这篇关于C++ STL算法nth_element(36)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享
- 2024-07-04make后如何升级ssh-icode9专业技术文章分享
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享