1. partial_sort()函数
功能:部分排序,默认情况下,[0,middle)升序排列,剩下的元素没有特殊的顺序。
1.1 函数声明
// default (1)
template <class RandomAccessIterator>
void partial_sort (RandomAccessIterator first, RandomAccessIterator middle,
RandomAccessIterator last);
// custom (2)
template <class RandomAccessIterator, class Compare>
void partial_sort (RandomAccessIterator first, RandomAccessIterator middle,
RandomAccessIterator last, Compare comp);
1.2 示例程式
void test_partial_sort() {
vector<int> vec {1,3,5,7,9,2,4,6,8};
std::partial_sort(vec.begin(), vec.begin()+5, vec.end());
for (auto& x : vec) {
cout << x << " ";
}
cout << endl;
}
1.3 参考链接
2. partial_sort_copy()函数
功能:将一个序列里的元素拷贝到另一个序列李,拷贝部分长度和接受序列大小一致,默认升序。
2.1 函数声明
// default (1)
template <class InputIterator, class RandomAccessIterator>
RandomAccessIterator
partial_sort_copy (InputIterator first,InputIterator last,
RandomAccessIterator result_first,
RandomAccessIterator result_last);
// custom (2)
template <class InputIterator, class RandomAccessIterator, class Compare>
RandomAccessIterator
partial_sort_copy (InputIterator first,InputIterator last,
RandomAccessIterator result_first,
RandomAccessIterator result_last, Compare comp);
2.2 示例程式
void test_partial_sort_copy() {
vector<int> vec {1,3,5,7,9,2,4,6,8};
vector<int> vec1(5);
std::partial_sort_copy(vec.begin(), vec.end(), vec1.begin(), vec1.end());
for (auto& x : vec1) {
cout << x << " ";
}
cout << endl;
}
输出结果:1 2 3 4 5
2.3 参考链接
http://www.cplusplus.com/reference/algorithm/partial_sort_copy/