Maksud saya adalah - kita tahu bahwa std::mapelemen 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 234atau apakah penerapannya ditentukan?
Alasan kehidupan nyata: Saya memiliki std::mapdengan intkunci. Dalam situasi yang sangat langka, saya ingin beralih melalui semua elemen, dengan kunci, lebih besar dari intnilai konkret . Ya, sepertinya ini std::vectorakan menjadi pilihan yang lebih baik, tetapi perhatikan "situasi yang sangat langka" saya.
EDIT : Saya tahu, bahwa elemen std::mapdiurutkan .. 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_bounduntuk menemukan titik untuk memulai iterasi.