c++ class as sort function

// constructing sets
#include <iostream>
#include <set>
#include <string.h>


bool fncomp (int lhs, int rhs) {return lhs<rhs;}

struct classcomp {
  bool operator() (const int& lhs, const int& rhs) const
  {return lhs<rhs;}
};

int main ()
{
  std::set<int> first;                           // empty set of ints

  int myints[]= {10,20,30,40,50};
  std::set<int> second (myints,myints+5);        // range

  std::set<int> third (second);                  // a copy of second

  std::set<int> fourth (second.begin(), second.end());  // iterator ctor.

  std::set<int,classcomp> fifth(second.begin(), second.end());                 // class as Compare
  
  std::set<int>::reverse_iterator rit;
  for (rit=fifth.rbegin(); rit != fifth.rend(); ++rit)
    std::cout << ' ' << *rit;

  //bool(*fn_pt)(int,int) = fncomp;
  //std::set<int,bool(*)(int,int)> sixth (fn_pt);  // function pointer as Compare
  
  //std::cout<<strcmp("abc", "ab")<<std::endl;

  return 0;
}

 

posted @ 2018-08-09 12:25  友哥  阅读(157)  评论(0编辑  收藏  举报