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






Set with functor for string comparison

  
 
#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

*/
        
    
  








Related examples in the same category

1.String: equals
2.string overloaded equality and relational operators
3.Compare string ignoring the case
4.Compare sub string: string4.compare( 0, string2.length(), string2 )
5.Use == > and < to compare strings
6.Use string.compare to compare two strings
7.Compare strings by index: string1.compare( 2, 5, string3, 0, 5)
8.return true if c1 < c2 (ignoring case), false otherwise
9.Use std::lexicographical_compare to compare two char arrays
10.Compare strings
11.return true if c1 equals c2 (regardless of case), false otherwise