#include <iostream> #include <vector> #include <algorithm> #include <functional> template<typename _RanIt> void Output(_RanIt _First, _RanIt _Last) { for (_RanIt next = _First; next != _Last; ) { std::cout << *next; next++; if (next != _Last) { std::cout << ", "; } else { std::cout << std::endl; } } } int main() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(2); v.push_back(0); // 0, 1, 2, 2, 3 std::sort(v.begin(), v.end(), std::less<int>()); Output(v.begin(), v.end()); // Expression: invalid operator< std::sort(v.begin(), v.end(), std::not2(std::less<int>())); Output(v.begin(), v.end()); // 3, 2, 2, 1, 0 std::sort(v.rbegin(), v.rend(), std::less<int>()); Output(v.begin(), v.end()); return 0; }