Sono molto confuso dal nome "unordered_map". Il nome suggerisce che le chiavi non sono affatto ordinate. Ma ho sempre pensato che fossero ordinati per il loro valore hash. O è sbagliato (perché il nome implica che non sono ordinati)?La carta non ordinata è davvero non ordinata?
O per dirla diverso: È questo
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 stesso
typedef unordered_map<K, V> HashMap;
? (OK, non esattamente, STL si lamenterà qui perché ci possono essere le chiavi k1, k2 e né k1 < k2 né k2 < k1 Lei avrebbe bisogno di utilizzare multimap
e sovrascrivere il pari-check..)
O ancora in modo diverso: Quando li elabora, posso supporre che la key-list sia ordinata dal loro valore hash?
Eventuali duplicati di http: //stackoverflow.com/questions/3039823/boostunordered-map-is-ordered – Cogwheel