STL Algorithms Sorting C++ Tutorial

#include 
#include 
#include 
#include 
using namespace std;
class comp_last {
 public:
  bool operator()(int x, int y) const
    // Compare x and y based on their last base-10 digits:
  {
    return x  10;
  }
};
int main()
{
  const int N = 20;
  vector vector0;
  for (int i = 0; i < N; ++i)
   vector0.push_back(i);
  vector vector1 = vector0;
  ostream_iterator out(cout, " ");
  cout << "Before sorting:\n";
  copy(vector1.begin(), vector1.end(), out);
  cout << endl;
  sort(vector1.begin(), vector1.end(), comp_last());
 
  cout << "After sorting by last digits with sort:\n";
  copy(vector1.begin(), vector1.end(), out);
  cout << endl << endl;
  vector1 = vector0;
  reverse(vector1.begin(), vector1.end());
  cout << "Before sorting:\n";
  copy(vector1.begin(), vector1.end(), out);
  cout << endl << endl;
  partial_sort(vector1.begin(), vector1.begin() + 5,vector1.end(), comp_last());
  cout << "After sorting with partial_sort to get 5 values with smallest last digits:\n";
  copy(vector1.begin(), vector1.end(), out);
  cout << endl << endl;
  return 0;
}
Before sorting:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
After sorting by last digits with sort:
10 0 11 1 12 2 13 3 4 14 5 15 6 16 7 17 8 18 9 19
Before sorting:
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
After sorting with partial_sort to get 5 values with smallest last digits:
10 0 11 1 12 19 18 17 16 15 9 8 7 6 5 4 14 13 3 2