概述
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");
- }
#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");
}
最后
以上就是高挑发箍为你收集整理的STL中的nth_element()方法的使用的全部内容,希望文章能够帮你解决STL中的nth_element()方法的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复