ฉันแน่ใจว่าคุณรู้ว่าstd::vector<X>ร้านค้าทั้งกลุ่มของXวัตถุใช่มั้ย? แต่ถ้าคุณมีstd::map<X, Y>สิ่งที่มันจริงร้านค้าเป็นทั้งกลุ่มของstd::pair<const X, Y>s นั่นคือสิ่งที่แผนที่ - มันจับคู่คีย์และค่าที่เกี่ยวข้อง
เมื่อคุณทำซ้ำ a std::mapคุณจะทำซ้ำสิ่งเหล่านี้std::pairทั้งหมด เมื่อคุณทำการอ้างอิงซ้ำหนึ่งในตัววนซ้ำเหล่านี้คุณจะได้รับstd::pairรหัสและค่าที่เกี่ยวข้อง
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
ที่นี่ถ้าคุณทำตอนนี้*itคุณจะได้รับstd::pairองค์ประกอบแรกในแผนที่
ตอนนี้ชนิดstd::pairช่วยให้คุณเข้าถึงองค์ประกอบผ่านสองสมาชิก: และfirst secondดังนั้นถ้าคุณมีstd::pair<X, Y>ที่เรียกว่าp, p.firstเป็นXวัตถุและp.secondเป็นYวัตถุ
ดังนั้นตอนนี้คุณรู้ว่า dereferencing std::mapiterator ช่วยให้คุณstd::pairแล้วคุณสามารถเข้าถึงองค์ประกอบด้วยและfirst secondตัวอย่างเช่น(*it).firstจะให้คีย์และ(*it).secondจะให้คุณค่าแก่คุณ เหล่านี้จะเทียบเท่ากับและit->firstit->second
std::mapเก็บกุญแจและคุ้มค่าmap::iterator.secondหมายถึงความคุ้มค่า