मैं 'unordered_map' नाम से बहुत उलझन में हूं। नाम से पता चलता है कि चाबियाँ बिल्कुल ऑर्डर नहीं की जाती हैं। लेकिन मैंने हमेशा सोचा कि उन्हें उनके हैश मूल्य द्वारा आदेश दिया गया है। या यह गलत है (क्योंकि नाम का तात्पर्य है कि उन्हें आदेश नहीं दिया गया है)?क्या unordered_map वास्तव में unordered है?
या यह अलग डाल करने के लिए: इस
typedef map<K, V, HashComp<K> > HashMap;
template<typename T>
struct HashComp {
bool operator<(const T& v1, const T& v2) const {
return hash<T>()(v1) < hash<T>()(v2);
}
};
ही साथ
typedef unordered_map<K, V> HashMap;
रूप
है? (ठीक है, नहीं बिल्कुल, एसटीएल यहां शिकायत के कारण उसकी कुंजी k1, k2 और न k1 < k2 और न ही k2 < k1 हो सकता है आप multimap
का उपयोग करें और ऊपर लिख बराबर की जांच करने की आवश्यकता होगी।।)
या फिर अलग ढंग से: जब मैं उनके माध्यम से पुनरावृत्ति करता हूं, तो क्या मैं मान सकता हूं कि कुंजी-सूची उनके हैश मान द्वारा आदेशित है?
http के संभावित डुप्लिकेट के संचालन के लिए कुछ बड़े-ओ जटिलता की आवश्यकता है: //stackoverflow.com/questions/3039823/boostunordered-map-is-ordered – Cogwheel