// 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; }