Store objects in a map : map « Map Multimap « C++






Store objects in a map

  
 

#include <iostream>
#include <map>
#include <cstring>
using namespace std;

class Name {
  char str[40];
public:
  Name() {
     strcpy(str, "");
  }
  Name(char *s) {
     strcpy(str, s);
  }
  char *get() {
     return str;
  }

};

// Must define less than relative to Name objects.
bool operator<(Name a, Name b)
{
   return strcmp(a.get(), b.get()) < 0;
}

class Number {
  char str[80];
public:
  Number() {
     strcmp(str, "");
  }
  Number(char *s) {
     strcpy(str, s);
  }
  char *get() {
     return str;
  }
};


int main()
{
  map<Name, Number> directory;

  directory.insert(pair<Name, Number>(Name("T"),Number("555-4444")));
  directory.insert(pair<Name, Number>(Name("C"),Number("555-3333")));
  directory.insert(pair<Name, Number>(Name("J"),Number("555-2222")));
  directory.insert(pair<Name, Number>(Name("R"),Number("555-1111")));

  char str[80] = "T";

  map<Name, Number>::iterator p;

  p = directory.find(Name(str));
  if(p != directory.end())
    cout << "Phone number: " <<  p->second.get();
  else
    cout << "Name not in directory.\n";

  return 0;
}

/* 
Phone number: 555-4444
 */        
    
  








Related examples in the same category

1.Demonstrating an STL map
2.Use string as the key and value in a map
3.Define string-string map and loop through the value key-pair
4.Declare a char int map
5.Create string float map
6.Multiple map
7.Add user-defined object to map, loop through the map and output
8.Computing an inner product of tuples represented as maps
9.Use a map to create a phone directory.
10.Get the size of a map
11.Put value to map with assignment