Maksud saya adalah - kita tahu bahwa std::map
elemen diurutkan sesuai dengan kunci. Jadi, katakanlah kuncinya adalah bilangan bulat. Jika saya iterate dari std::map::begin()
ke std::map::end()
menggunakan for
, apakah jaminan standar bahwa saya akan iterate akibatnya melalui unsur-unsur dengan kunci, diurutkan dalam urutan menaik?
Contoh:
std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for( std::map<int, int>::iterator iter = map_.begin();
iter != map_.end();
++iter )
{
std::cout << iter->second;
}
Apakah ini dijamin untuk dicetak 234
atau apakah penerapannya ditentukan?
Alasan kehidupan nyata: Saya memiliki std::map
dengan int
kunci. Dalam situasi yang sangat langka, saya ingin beralih melalui semua elemen, dengan kunci, lebih besar dari int
nilai konkret . Ya, sepertinya ini std::vector
akan menjadi pilihan yang lebih baik, tetapi perhatikan "situasi yang sangat langka" saya.
EDIT : Saya tahu, bahwa elemen std::map
diurutkan .. tidak perlu menunjukkannya (untuk sebagian besar jawaban di sini). Saya bahkan menulisnya di pertanyaan saya.
Saya bertanya tentang iterator dan pesanan ketika saya beralih melalui wadah. Terima kasih @ Gerrek SB untuk jawabannya.
map::upper_bound
untuk menemukan titik untuk memulai iterasi.