nth_element

生活百科 2023-01-25 18:02生活百科www.aizhengw.cn

nth_element

对给定範围进行"排序"

说明

模板函式
头档案: <algorithm>
函式名: std::nth_element
(1)
template <class RandomAccessIterator> void nth_element (RandomAccessIterator first, RandomAccessIterator nth,RandomAccessIterator last);
(2)
template <class RandomAccessIterator, class Compare> void nth_element (RandomAccessIterator first, RandomAccessIterator nth,RandomAccessIterator last, Compare comp);
对给定範围内的元素"排序"
对给定範围[first,last)内的元素进行重新布置.方法是,nth位置的元素放置的值就是把所有元素排序后在nth位置的值.把所有不大于nth的值放到nth的前面,把所有不小于nth的值放到nth后面.

参数

  • first, last
  • 随机访问叠代器.指定了需要重新"排序"的範围.包括first,但不包括last.
  • nth
  • 随机访问叠代器.指向範围[first,last)内的一个位置.这个位置将放置排序后应该放于此位置的元素.
comp
二元函式. 返回bool. 表明是否第一个参数应该排序到第二个参数的前面.此函式不应该修改参数值.可以是一个函式指针或函式对象.

返回值

实例

//nth_elementexample#include<iostream>//std::cout#include<algorithm>//std::nth_element,std::random_shuffle#include<vector>//std::vectorboolmyfunction(inti,intj){return(i<j);}intmain(){std::vector<int>myvector;//setsomevalues:for(inti=1;i<10;i++)myvector.push_back(i);//123456789std::random_shuffle(myvector.begin(),myvector.end());//usingdefaultcomparison(operator<):std::nth_element(myvector.begin(),myvector.begin()+5,myvector.end());//usingfunctionascompstd::nth_element(myvector.begin(),myvector.begin()+5,myvector.end(),myfunction);//printoutcontent:std::cout<<"myvectorcontains:";for(std::vector<int>::iteratorit=myvector.begin();it!=myvector.end();++it)std::cout<<''<<it;std::cout<<'\n';return0;}

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有