Estoy muy confundido por el nombre 'unordered_map'. El nombre sugiere que las claves no están ordenadas en absoluto. Pero siempre pensé que estaban ordenados por su valor hash. ¿O es incorrecto (porque el nombre implica que no están ordenados)?¿El mapa sin ordenar es realmente desordenado?
O, para decirlo diferente: ¿Es esta
typedef map<K, V, HashComp<K> > HashMap;
con
template<typename T>
struct HashComp {
bool operator<(const T& v1, const T& v2) const {
return hash<T>()(v1) < hash<T>()(v2);
}
};
lo mismo que
typedef unordered_map<K, V> HashMap;
? (Bueno, no exactamente, STL se quejará aquí porque puede haber claves k1, k2 y tampoco k2 k1 < ni < k1 k2 Usted tendría que utilizar multimap
y sobrescribir la igualdad de verificación..)
O también de otra manera: Cuando los repito, ¿puedo suponer que la lista de claves está ordenada por su valor hash?
duplicado Posible de http: //stackoverflow.com/questions/3039823/boostunordered-map-is-ordered – Cogwheel