Or login with:
#include <algorithm> template < class RandomAccessIterator > void partial_sort( RandomAccessIterator first, RandomAccessIterator sortEnd, RandomAccessIterator last ); template < class RandomAccessIterator, class BinaryPredicate > void partial_sort( RandomAccessIterator first, RandomAccessIterator sortEnd, RandomAccessIterator last BinaryPredicate comp );Parameters:
| Parameter | Description |
|---|---|
| first | A random-access iterator addressing the position of the first element in the range to be sorted |
| last | A random-access iterator addressing the position one past the final element in the range to be partially sorted |
| sortEnd | A random-access iterator addressing the position one past the final element in the sub-range to be sorted |
| comp | User-defined predicate function object that defines the comparison criterion to be satisfied by successive elements in the ordering. A binary predicate takes two arguments and returns true when satisfied and false when not satisfied |
first and sortEnd will be sorted and the elements between sortEnd and last will be in an unspecied order.
This function sorts a range of size sortEnd - first by taking its elements between first and last.
The first version compares objects using operator<, and the second compares objects using a function object comp.#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int a[] = {10, 2, 6, 11, 9, 3, 4, 12, 8, 7, 1, 5}; vector<int> v(a, a+12); cout <<"\nHere are the initial contents of the vector:\n"; for (vector<int>::size_type i=0; i<v.size(); i++) cout <<v.at(i)<<" "; cout <<"\nNow we make the following call:"; cout <<"\npartial_sort(v.begin(), v.begin()+5, v.end());"; partial_sort(v.begin(), v.begin()+5, v.end()); cout <<"\nAnd here are the (partially sorted) contents of the " "vector,\nup to and including its 5th element:\n"; for (vector<int>::size_type i=0; i<v.size(); i++) cout <<v.at(i)<<" "; return 0; }
You must login to leave a messge