Mega Code Archive

 
Categories / C++ Tutorial / Map Multimap
 

Uses a multimap to store names and phone numbers

#include <iostream> #include <map> #include <string> using namespace std; void shownumbers(const char *n, multimap<string, string> mp); int main() {   multimap<string, string> phonemap;   // Insert elements by using operator[].   phonemap.insert(pair<string, string>("A", "B: 555-1111"));   phonemap.insert(pair<string, string>("C", "D: 555-1234"));   phonemap.insert(pair<string, string>("E", "F: 555-1122"));   phonemap.insert(pair<string, string>("J", "K: 314 555-2222"));   phonemap.insert(pair<string, string>("L", "M: 314 555-3322"));   phonemap.insert(pair<string, string>("O", "P: 666 555-9876"));   phonemap.insert(pair<string, string>("Q", "R: 555 555-1010"));   phonemap.insert(pair<string, string>("S", "T: 444 555-9999"));   shownumbers("A", phonemap);   shownumbers("C", phonemap);   shownumbers("E", phonemap);   int count = phonemap.erase("A");   cout << count << " elements have been removed.\n\n";   shownumbers("Ken", phonemap);   return 0; } // Show all numbers for a given name. void shownumbers(const char *n, multimap<string, string> mmp) {   multimap<string, string>::iterator itr;   // Find the first matching key.   itr = mmp.find(n);   if(itr != mmp.end()) {     cout << "the numbers for " << n << ": " << endl;     do {       cout << " " << itr->second << endl;     ++itr;   } while (itr != mmp.upper_bound(n)); } else   cout << "No entry for " << n << " found." << endl; }