Mega Code Archive

 
Categories / C++ / Map Multimap
 

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; }