#include <iostream>
#include <algorithm>
#include <deque>
#include <functional>
#include <vector>
#include <iterator>
using namespace std;
//bool lessLength(const string& s1, const string& s2)
//{
// return s1.length() < s2.length();
//}
int main()
{
deque<int> ideq;
vector<int> ivec2(6);
vector<int> ivec3(40);
for (int i = 4; i <= 8; ++i)
ideq.push_back(i);
for (int i = 3; i <= 7; ++i)
ideq.push_back(i);
for (int i = 1; i <= 5; ++i)
ideq.push_back(i);
for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)
cout << *iter << ' ';
cout << endl;
partial_sort(ideq.begin(), ideq.begin() + 5, ideq.end()); // partial_sort 是局部排序,
for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)
cout << *iter << ' ';
cout << endl;
partial_sort(ideq.begin(), ideq.begin() + 5, ideq.end(),greater<int>()); // partial_sort 是局部排序,这个使用谓词从大到小排序,
for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)
cout << *iter << ' ';
cout << endl;
cout << endl;
partial_sort_copy(ideq.begin(), ideq.end(), ivec2.begin(), ivec2.end());//partial_sort_copy是copy之后再局部排序,
copy(ivec2.begin(), ivec2.end(), ostream_iterator<int>(cout, " "));
cout << endl;
partial_sort_copy(ideq.begin(), ideq.end(), ivec3.begin(), ivec3.end()); // copy的数据不够就用0去添加,
copy(ivec3.begin(), ivec3.end(), ostream_iterator<int>(cout, " "));
cout << endl;
vector<int>::iterator pos;
pos = partial_sort_copy(ideq.begin(), ideq.end(), ivec3.begin(), ivec3.end(),greater<int>());
copy(ivec3.begin(), pos, ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}
局部排序
最新推荐文章于 2022-12-10 21:03:50 发布