Tuesday, 15 April 2014

char - Custom comparison operator and custom class for std::set in C++ -



char - Custom comparison operator and custom class for std::set in C++ -

i create set containing objects of class, have determine custom comparison. unfortunately, tried did not work.

class my_class { public: char letter; set<my_class, compare> children; };

ant then, compare struct:

struct compare { bool operator() (const my_class& a, const my_class& b) const{ homecoming a.letter < b.letter; } };

how can create work please?

currently, issue displays identifiers a , b not declared.

you trying utilize compare construction within my_class, uses my_class in method. not trivial case, forwards declaration help. should work:

class my_class; struct compare { bool operator() (const my_class &a, const my_class &b) const; }; class my_class { public: char letter; set<my_class, compare> children; }; bool compare::operator() (const my_class &a, const my_class &b) const { homecoming a.letter < b.letter; }

another alternative pass comparator std::set constructor, rather specify template parameter:

class my_class { public: my_class(); char letter; set<my_class> children; }; struct compare { bool operator() (const my_class& a, const my_class& b) const{ homecoming a.letter < b.letter; } }; my_class::my_class() : children( compare() ) { }

c++ char set compare stdset

No comments:

Post a Comment