example ejemplo c++ hashmap

ejemplo - multimap c++



Me gustarĂ­a ver un ejemplo de hash_map en C++ (5)

No sé cómo usar la función hash en C ++, pero sé que podemos usar hash_map . ¿ #include <hash_map> g ++ eso simplemente incluyendo #include <hash_map> ? ¿Qué es un ejemplo simple usando hash_map ?


El estándar actual de C ++ no tiene mapas hash, pero el estándar C ++ 0x viene, y estos ya son compatibles con g ++ en la forma de "mapas desordenados":

#include <unordered_map> #include <iostream> #include <string> using namespace std; int main() { unordered_map <string, int> m; m["foo"] = 42; cout << m["foo"] << endl; }

Para obtener esta compilación, necesita decirle a g ++ que está usando C ++ 0x:

g++ -std=c++0x main.cpp

Estos mapas funcionan más o menos como lo hace std :: map, excepto que en lugar de proporcionar un operator<() para sus propios tipos, debe proporcionar una función hash personalizada: se proporcionan funciones adecuadas para tipos como enteros y cadenas.


El nombre aceptado en TR1 (y el borrador para el próximo estándar) es std::unordered_map , por lo que si lo tiene disponible, probablemente sea el que quiera usar.

Aparte de eso, usarlo es muy similar a usar std::map , con la condición de que cuando / si recorre los elementos en un std::map , salen en el orden especificado por el operator< , pero para un std::map no ordenado, el orden generalmente no tiene sentido




#include <tr1/unordered_map> obtendrá el siguiente contenedor de hash único estándar de C ++. Uso:

std::tr1::unordered_map<std::string,int> my_map; my_map["answer"] = 42; printf( "The answer to life and everything is: %d/n", my_map["answer"] );