unordered_map - acelera el recorrido

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

Guess you like

Origin blog.csdn.net/sign_river/article/details/130172114