1.unordered_map
Para usar el contenedor unordered_map, debe incluir el archivo de encabezado #include<unordered_map>. El uso de unordered_map es el mismo que el de map. No hace falta decir que la principal ventaja de unordered_map es que la velocidad transversal es rápida y puede ahorrar mucho tiempo cuando los datos son grandes. A menudo se usa en problemas de algoritmos para reemplazar el mapa para evitar el tiempo de espera.
2. Recorrido de unordered_map
unordered_map<int, int>x;
unordered_map<int, int>::iterator xit;
for (xit = x.begin(); xit != x.end(); xit++) {
cout << xit->first<<" "<<xit->second<< endl;
}
3. Comparación entre unordered_map y mop
- En términos de eficiencia operativa : unordered_map es el más alto, mientras que map es menos eficiente pero proporciona una eficiencia estable y secuencias ordenadas.
- En términos de uso de memoria : el uso de memoria del mapa es ligeramente inferior y el uso de memoria de unordered_map es ligeramente superior y es linealmente proporcional.
4. Principio
- mapa: Dentro del mapa se implementa un árbol rojo-negro. Esta estructura tiene la función de clasificación automática, por lo que todos los elementos dentro del mapa están en orden. Cada nodo del árbol rojo-negro representa un elemento del mapa. Por lo tanto, para el mapa Una serie de operaciones como buscar, eliminar y agregar son equivalentes a realizar tales operaciones en el árbol rojo-negro, por lo que la eficiencia del árbol rojo-negro determina la eficiencia del mapa.
- unordered_map: unordered_map implementa una tabla hash internamente, por lo que el orden de disposición de sus elementos es desordenado y desordenado