Set with functor for string comparison : string compare « string « C++ Tutorial






#include <iostream>
#include <set>
#include <string>
#include <functional>
#include <cassert>

using namespace std;

struct strPtrLess {
   bool operator( )(const string* p1,const string* p2) {
      return(*p1 < *p2);
   }
};

int main( ) {
   set<string*, strPtrLess> setStrPtr;  // less-than functor
   string s1 = "T";
   string s2 = "D";
   string s3 = "H";

   setStrPtr.insert(&s1);
   setStrPtr.insert(&s2);
   setStrPtr.insert(&s3);

   for (set<string*, strPtrLess>::const_iterator p = setStrPtr.begin( ); p != setStrPtr.end( ); ++p)
      cout << **p << endl;

}
D
H
T








15.7.string compare
15.7.1.String: equals
15.7.2.string overloaded equality and relational operators
15.7.3.Compare string ignoring the case
15.7.4.Compare sub string: string4.compare( 0, string2.length(), string2 )
15.7.5.Use == > and < to compare strings
15.7.6.Use string.compare to compare two strings
15.7.7.Compare strings by index: string1.compare( 2, 5, string3, 0, 5)
15.7.8.Set with functor for string comparison
15.7.9.Case-Sensitive Substring Comparison: equivalent of strncmp()
15.7.10.Case-Sensitive Substring Comparison: generalization of strncmp()
15.7.11.Case-Sensitive String Comparisons
15.7.12.Use std::lexicographical_compare to compare two char arrays