Use a map to create a phone directory. : map « Map Multimap « C++






Use a map to create a phone directory.

  
#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; }
   
};
   
bool operator<(name a, name b)
{
   return strcmp(a.get(), b.get()) < 0;
}
   
class phoneNum {
  char str[80];
public:
  phoneNum() { strcmp(str, ""); }
  phoneNum(char *s) { strcpy(str, s); }
  char *get() { return str; }
};
   
   
int main()
{
  map<name, phoneNum> directory;
   
  directory.insert(pair<name, phoneNum>(name("A"), phoneNum("555-1111")));
  directory.insert(pair<name, phoneNum>(name("B"), phoneNum("555-2222")));
  directory.insert(pair<name, phoneNum>(name("C"), phoneNum("555-3333")));
  directory.insert(pair<name, phoneNum>(name("D"), phoneNum("555-4444")));
   
   
  map<name, phoneNum>::iterator p;
 
  p = directory.find(name("A"));
  if(p != directory.end())
    cout << "Phone number: " <<  p->second.get();
  else
    cout << "Name not in directory.\n";
   
  return 0;
}
  
    
  








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.Store objects in a map
8.Add user-defined object to map, loop through the map and output
9.Computing an inner product of tuples represented as maps
10.Get the size of a map
11.Put value to map with assignment