ลำดับของการวนซ้ำผ่านแผนที่ std :: เป็นที่รู้จัก (และรับประกันโดยมาตรฐาน) หรือไม่
สิ่งที่ฉันหมายถึงคือ - เรารู้ว่าstd::mapองค์ประกอบของเรียงตามคีย์ สมมุติว่ากุญแจนั้นเป็นจำนวนเต็ม หากฉันซ้ำจากstd::map::begin()การstd::map::end()ใช้ a forการรับประกันมาตรฐานจะให้ฉันทำซ้ำตามลำดับผ่านองค์ประกอบที่มีคีย์เรียงตามลำดับจากน้อยไปหามากหรือไม่ ตัวอย่าง: 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; } สิ่งนี้รับประกันว่าจะพิมพ์234หรือมีการกำหนดการใช้งานหรือไม่ เหตุผลชีวิตจริง: ฉันมีstd::mapกับintคีย์ ในสถานการณ์ที่หายากมากฉันต้องการวนซ้ำองค์ประกอบทั้งหมดด้วยคีย์มากกว่าintค่าที่เป็นรูปธรรม ใช่ดูเหมือนstd::vectorจะเป็นตัวเลือกที่ดีกว่า แต่สังเกต "สถานการณ์ที่หายากมาก" ของฉัน แก้ไข : ฉันรู้ว่าองค์ประกอบของstd::mapเรียงลำดับ .. ไม่จำเป็นต้องชี้ให้เห็น (สำหรับคำตอบส่วนใหญ่ที่นี่) …