nth_element函数

一般模板:nth_element(first,nth,last)和nth_element(first,nth,last,comp)
vector模板:nth_element(v.begin(),v.begin()+k-1,v.end())
array模板:nth_element(arr,arr+k-1,arr+n)
函数作用:
重新排列范围内的元素[first,last],使第n个位置的元素是在排序序列中位于该位置的元素。其他元素没有任何特定的顺序,除了第n个之前的元素没有一个大于它,后面的元素也没有一个小于它。第一个版本使用操作符<比较元素,第二个版本使用comp比较元素。简单来说就是默认输出第n小的数,网上大多数博文都是垃圾,还说是第n大,气愤!!!当然也有可能是STL新特性改了,要想输出第n大,需要定义comp,在VS2015中,nth_element会把first~last全部都排好序。
参数介绍:
first,last
随机访问迭代器到要使用的序列的初始和最终位置。使用的范围是[first,last],它包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。注意,在这个函数中,这些不是连续的参数,而是第一个和第三个参数。
C++14的nth
指向[first,last]范围内包含已排序元素的位置的随机访问迭代器。如果这个指向last,则函数调用没有效果。注意,调用前由n指向的元素的值是不相关的。
comp
一个二进制函数,它接受范围内的两个元素作为参数,并返回一个可转换为bool的值。返回的值指示作为第一个参数传递的元素在其定义的特定严格弱序中是否被认为在第二个参数之前。函数不能修改它的任何参数。它可以是函数指针,也可以是函数对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值