Algorithm C++

#include 
#include 
#include 
#include 
using namespace std;
int main()
{
  list lst;
  list::iterator p, endp;
  for(int i=1; i < 20; i++) lst.push_back(i);
  cout << "Original sequence:\n";
  p = lst.begin();
  while(p != lst.end()) {
    cout << *p << " ";
    p++;
  }
  cout << endl;
  endp = remove_if(lst.begin(), lst.end(),
                   bind2nd(greater(), 8));
  cout << "Resulting sequence:\n";
  p = lst.begin();
  while(p != endp) {
    cout << *p << " ";
    p++;
  }
  return 0;
}
/* 
Original sequence:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Resulting sequence:
1 2 3 4 5 6 7 8 
 */