Duplicate keys are not allowed in a map : map insert « map multimap « C++ Tutorial






#include <iostream>
#include <string>
#include <map>
#include <utility>

using namespace std;

void show(const char *msg, map<string, string> mp);

int main() {
  map<string, string> phonemap;

  phonemap["A"] = "444-555-1234";
  phonemap["B"] = "555-555-6576";
  phonemap["C"] = "555-555-9843";

  show("Here is the original map: ", phonemap);
  cout << endl;

  // Now, change the phone number for Ken.
  phonemap["B"] = "555 555-5555";
  cout << "New number for Ken: " << phonemap["Ken"] << "\n\n";

  // Create a pair object that will contain the result of a call to insert().
  pair<map<string, string>::iterator, bool> result;

  // Duplicate keys are not allowed, as the following proves.
  result = phonemap.insert(pair<string, string>("B", "555-1010"));
  if(result.second) 
     cout << "Duplicate added! Error!";
  else 
     cout << "Duplicate not allowed.\n";
  show("phonemap after attempt to add duplicate key: ", phonemap);

  return 0;
}

// Display the contents of a map<string, string> by using an iterator.
void show(const char *msg, map<string, string> mp) {
  map<string, string>::iterator itr;

  cout << msg << endl;

  for(itr=mp.begin(); itr != mp.end(); ++itr)
   cout << " " << itr->first << ": " << itr->second << endl;

  cout << endl;
}








23.6.map insert
23.6.1.Insert characters into map.
23.6.2.Use insert() to add an entry
23.6.3.Duplicate keys are not allowed in a map
23.6.4.Insert a pair using function make_pair
23.6.5.Insert a pair object directly
23.6.6.Insert using an array-like syntax for inserting key-value pairs
23.6.7.Insert key-value pairs into the map using value_type
23.6.8.use subscript operator to write value to a map
23.6.9.Insert value pair to map