He escrito el siguiente código y me sorprendió la salida. Escuché que <map>
evita la colisión de teclas, pero aquí parece permitir la inserción de pares duplicados.STL <map> permite pares duplicados?
#include<iostream>
#include<map>
using namespace std;
int main()
{
map<string,char> namemap;
namemap["yogi"]='c';
namemap.insert(pair<string,char>("yogendra",'a'));
namemap.insert(pair<string,char>("yogendra",'b'));
cout<<namemap["yogendra"]<<endl;
return 0;
}
Este código muestra a
. Puede ejecutarlo en C++ Shell.
¿Evitar una colisión significa que no podemos ingresar varios pares con la misma llave?
¿Qué comportamiento esperabas? ¿Una excepción? ¿Sobrescribir el primer valor con el segundo? ¿Ignorando el segundo valor? ¿Un error del compilador? –
Se explica claramente [aquí] (http://en.cppreference.com/w/cpp/container/map/insert) – juanchopanza
@juanchopanza: a veces deseo que RTFM se considerara una respuesta suficiente: x –