unordered_map
C ++ ile ilgili son bir konuşma , aramanın etkinliği nedeniyle daha önce unordered_map
kullandığım çoğu durumda kullanmam gerektiğini anlamamı sağladı map
( amortisör O (1) ve O (log n) ). Çoğu zaman bir harita kullanıyorum ya int
da std::string
anahtar türü olarak kullanıyorum; bu nedenle, hash fonksiyonunun tanımı ile ilgili bir sorunum yok. Ne kadar çok düşünürsem, basit tiplere sahip tuşlar için bir std::map
over- in kullanmanın herhangi bir nedenini bulamadığımı fark ettim std::unordered_map
- arayüzlere bir göz attım ve herhangi bir şey bulamadım kodumu etkileyecek önemli farklılıklar.
Dolayısıyla soru: kullanmak için herhangi bir gerçek neden yoktur std::map
üzerinde std::unordered_map
gibi basit tiplerinin durumunda int
ve std::string
?
Kesinlikle programlama açısından soruyorum - tam olarak standart olarak kabul edilmediğini ve taşıma ile ilgili sorunlara yol açabileceğini biliyorum.
Ayrıca, doğru cevaplardan birinin daha küçük bir ek yük nedeniyle "daha küçük veri kümeleri için daha verimli" olabileceğini umuyorum (bu doğru mu?) - Bu yüzden soruyu miktarın tuşları önemsiz değildir (> 1.024).
Düzenleme: duh, bariz unuttum (teşekkürler GMan!) - evet, haritalar tabii ki sipariş edilir - Bunu biliyorum ve diğer nedenleri arıyorum.