首页 > 代码库 > STL中的nth_element()方法的使用
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 Numbers30 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 Numbers44 45 start = Numbers.begin() ; 46 47 48 49 // one past the location last element of Numbers50 51 end = Numbers.end() ; 52 53 54 55 cout << "Before calling nth_element/n" << endl ;56 57 58 59 // print content of Numbers60 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 }
STL中的nth_element()方法的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。