STL演算法 ------ 區域性排序
阿新 • • 發佈:2018-12-27
1. partial_sort( b, se, e )
2. partial_sort( b, se, e, p )
3. partial_sort_copy( sb, se, db, de )
4. partial_sort_copy( sb, se, db, de, p )
#include <iostream> #include <algorithm> #include <vector> #include <list> #include <deque> #include <functional> using namespace std; template<typename T> void Print(const T& t) { for(typename T::const_iterator itr=t.begin(); itr!=t.end(); ++itr) { cout<<*itr<<' '; }cout<<endl; } int main( int argc, char** argv ) { deque<int> deq; for(int i=3; i<=7; ++i) { deq.push_back(i); } for(int i=2; i<=6; ++i) { deq.push_back(i); } for(int i=1; i<=5; ++i) { deq.push_back(i); } Print(deq); partial_sort(deq.begin(), deq.begin()+5, deq.end()); Print(deq); partial_sort(deq.begin(), deq.begin()+5, deq.end(), greater<int>()); Print(deq); return 0; }
#include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <list> #include <deque> #include <functional> using namespace std; template<typename T> void Print(const T& t) { for(typename T::const_iterator itr=t.begin(); itr!=t.end(); ++itr) { cout<<*itr<<' '; }cout<<endl; } int main( int argc, char** argv ) { deque<int> deq; vector<int> vec6(6); vector<int> vec30(30); for(int i=3; i<=7; ++i) { deq.push_back(i); } for(int i=2; i<=6; ++i) { deq.push_back(i); } for(int i=1; i<=5; ++i) { deq.push_back(i); } Print(deq); partial_sort_copy(deq.begin(), deq.end(), vec6.begin(), vec6.end()); Print(vec6); vector<int>::iterator pos; pos = partial_sort_copy(deq.begin(), deq.end(), vec30.begin(), vec30.end(), greater<int>()); Print(vec30); copy(vec30.begin(), pos, ostream_iterator<int>(cout, " ")); cout<<endl; return 0; }