#include #include #include using namespace std;class StringClass { char str[20];public: StringClass() { strcpy(str, ""); } StringClass(char *s) { strcpy(str, s); } char *get() { return str; }};// must define less than relative to StringClass objectsbool operator<(StringClass a, StringClass b){ return strcmp(a.get(), b.get()) < 0;}class opposite { char str[20];public: opposite() { strcmp(str, ""); } opposite(char *s) { strcpy(str, s); } char *get() { return str; }};int main(){ map mapObject; mapObject.insert(pair(StringClass("yes"), opposite("no"))); mapObject.insert(pair(StringClass("good"), opposite("bad"))); mapObject.insert(pair(StringClass("left"), opposite("right"))); mapObject.insert(pair(StringClass("up"), opposite("down"))); char str[80]; cout << "Enter word: "; cin >> str; map::iterator p; p = mapObject.find(StringClass(str)); if(p != mapObject.end()) cout << "Opposite: " << p->second.get(); else cout << "Word not in map.\n"; return 0;}