#include #include #include #include using namespace std; ostream& operator<<(ostream& out, const vector& v) { copy(v.cbegin(),v.cend(),ostream_iterator(out," ")); out << endl; return out; } bool abs_lt (int i,int j) { return abs(i) < abs(j); } class MyLessThan { public: bool operator() (int i,int j) { return i < j; } }; int main() { int myints[] = {32,-71,12,45,-26,80,-53,33}; vector myvector (myints, myints+8); cout << "1) " << myvector << endl; // using default comparison (operator <): sort (myvector.begin(), myvector.begin()+4); cout << "2) " << myvector << endl; // using function as std compare function object sort (myvector.begin(), myvector.end(), greater()); cout << "3) " << myvector << endl; // using function sort (myvector.begin(), myvector.end(), abs_lt); cout << "4) " << myvector << endl; // using function object (functor) MyLessThan object; sort (myvector.begin(), myvector.end(), object); cout << "5) " << myvector << endl; }