您的位置:首页 > 其它

STL中的nth_element()方法的使用

2008-06-22 00:09 417 查看
STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end) 方法可以使第n大元素处于第n位置(从0开始,其位置是下标为 n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的,下面是这个方法的具体使用方法.

#pragma warning(disable: 4786)

#include <iostream>

#include <algorithm>

#include <functional>

#include <vector>

using namespace std;

int main()

{

const int VECTOR_SIZE = 50 ;

vector<int> Numbers(VECTOR_SIZE) ;

vector<int>::iterator start, end, it ;

// Initialize vector Numbers

for(int i=0;i<50;++i){

Numbers[i]=i;

}

/*由于赋值时是有序的,下面random_shuffle()方法将这些数据的顺序打乱*/

random_shuffle(Numbers.begin(),Numbers.end());

// location of first element of Numbers

start = Numbers.begin() ;

// one past the location last element of Numbers

end = Numbers.end() ;

cout << "Before calling nth_element/n" << endl ;

// print content of Numbers

cout << "Numbers { " ;

for(it = start; it != end; it++)

cout << *it << " " ;

cout << " }/n" << endl ;

/*

* partition the elements by the 8th element,

*(notice that 0th is the first element)

*/

nth_element(start, start+8, end) ;

cout << "After calling nth_element/n" << endl ;

cout << "Numbers { " ;

for(it = start; it != end; it++)

cout << *it << " " ;

cout << " }/n" << endl ;

system("pause");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: