Bunun doğru olup olmadığını merak ediyorum? Öyleyse, bu davranış C++ standardı tarafından garanti ediliyor mu?std :: multimap, 2 elemanın anahtarı birbirine eşitse ekleme sırasını koruyacak mı?
cevap
std::map
'daki öğeler benzersiz tuşlara sahip olmalıdır, bu nedenle ... no.
std::multimap
konteynır, bir anahtar ile eşlenmiş birden fazla değere izin verir. std::multimap
üzerinden yinelenen öğeler, anahtarla sıralanır, ancak aynı anahtara sahip öğelerin sırası belirtilmez. Önümüzdeki C++ 0x standardının (N3092), aynı anahtar ile elementlerin bağıl sipariş son taslağında yüzden, bir noktada, sen güvenmek mümkün olacak (garanti olduğunu
Not bu davranış).
Teşekkürler. Önceki yazımda multimap demek istiyorum. – Thomson
bu açıklama Ben son önerilen yeni standardından farklı görünüyor (ama bu 21 aylık oldu (N2798 = 08-0308)) Ben alıntı: multiset ve Multimap'de için , eşdeğer göreli sıralamasını korumanız takıp silmek elementler. a_eq'de t'ye eşdeğer bir öğe içeren bir aralık varsa, bu aralığın sonuna t yerleştirilir. sayfa 771 – pgast
@pgast: Çok ilginç. Bu dil C++ 0x FCD (N3092) 'dir. Ancak, mevcut C++ standardında (C++ 03) göreceli siparişin muhafaza edildiği durum geçerli değildir. Bu değişime dikkat ettiğiniz için teşekkürler. –
- 1. std :: multimap için dizi değerleri ekleme
- 2. İlişkilendirilmiş harita sırasını koruyacak Clojure makro
- 3. Eğer aktif elemanın değeri eşitse sınıf
- 4. 2 değişken eşitse
- 5. Multimap veri yapısının javascript karşılığı var mı?
- 6. 2 sütunu önyükleme sırasında birbirine nasıl yerleştirirsiniz?
- 7. C++ Bir STL :: multimap
- 8. .Clear arayarak() veya C++ std üzerinde .erase() :: Multimap bazen donma (% 100 cpu) Biz hızlı değer/dizin aramaları için Multimap kullanıyorsunuz
- 9. Ekleme sırasını temel alarak yineleme hash?
- 10. C++ std
- 11. Bir Lua tablosunun sırasını dize tuşları ile nasıl saklayabilirim?
- 12. Multimap sıralama değil
- 13. 2 BigDecimal değerlerini ekleme
- 14. Köşeye ngclass ekleme 2
- 15. iki öncelik sırasını birleştirin
- 16. C++ Bir std :: haritasındaki en büyük anahtarı nasıl bulabilirim?
- 17. - Bir elemanın
- 18. Farklı GCC diyalektleri birbirine bağlanabilir mi?
- 19. Maksimum elemanın endeksini bulun
- 20. std :: map karşılaştırıcısını atar mı?
- 21. Std :: vektörünün kendisi kararlı mı?
- 22. Derleyici bayraklarının sırasını değiştirme
- 23. Bağlantı sırasını dikkate almadan kaynakları nasıl bağlarım?
- 24. İki haritayı bir MultiMap ile birleştirin
- 25. ebeveyn elemanın sınıfını alın
- 26. Her elemanın kombinasyonlarını bulma
- 27. Ekleme sırasını tutan değişmez bir anahtar-değer yapısına ihtiyacım var
- 28. std :: harita tasarımı: harita anahtarı ve depolanmış nesne adı için bir std :: dizesi kullanın (üye)
- 29. AutoIT elemanın sınıfını almak
- 30. Birbirine bağlı seçenekler nasıl edinilir?
[Çoğ std :: multiset garanti ekleme siparişi veriyor mu?] (Http://stackoverflow.com/questions/2643473/does-stdmultiset-guarantee-insertion-order) –