¿Es el unordered_map realmente desordenado?

Estoy muy confundido por el nombre 'unordered_map'. El nombre sugiere que las claves no están ordenadas en absoluto. Pero siempre pensé que están ordenados por su valor hash. ¿O eso está mal (porque el nombre implica que no están ordenados)?

O para decirlo de otra manera: ¿es esto

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;

? (OK, no exactamente, STL se quejará aquí porque puede haber claves k1, k2 y ni k1 <k2 ni k2 <k1. Debería usarmultimap y sobrescribe la verificación igual.)

O de nuevo de manera diferente: cuando los repito, ¿puedo suponer que la lista de claves está ordenada por su valor hash?

Respuestas a la pregunta(5)

Su respuesta a la pregunta