C++ standart kullanılarak std::map
yapıcı tanımlayan bir std::initializer_list
:std :: map başlatıcısı liste yapıcısı
map(std::initializer_list<value_type> init, const Allocator&);
Ancak burada başlatıcı listesi yinelenen anahtarlar içeriyorsa ne olur tanımlanır? İlk anahtar seçti mi, yoksa son mu? Örneğin:
std::map<std::string, int> my_map {
{"a", 1},
{"a", 2}
};
Uygulamada Harita artık içerecek şekilde, bu insert()
gibi davranır görünüyor {a: 1}. Bununla birlikte, C++ standardında bununla ilgili hiçbir şey bulamadım.
Teknik olarak, en azından alıntı yapılan kısımlardan, standardın hangi konumda olduğunu veya der elemanlar eklenirdi. – user2079303
@ user2079303 Daha iyi? – BoBTFish
Bunun yeterli olup olmadığından emin değilim.Geçilen yineleyici sadece bir giriş yineleyicisi olduğunda, sırayla eklenmesi gerekir, ancak initializer_list yineleyicisi rasgele erişim yineleyicisi ve farklı yineleyici türleri için uzmanlığı yasaklayan bir kural görmüyorum. – user2079303