ฉันแน่ใจว่าคุณรู้ว่า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::map
iterator ช่วยให้คุณstd::pair
แล้วคุณสามารถเข้าถึงองค์ประกอบด้วยและfirst
second
ตัวอย่างเช่น(*it).first
จะให้คีย์และ(*it).second
จะให้คุณค่าแก่คุณ เหล่านี้จะเทียบเท่ากับและit->first
it->second
std::map
เก็บกุญแจและคุ้มค่าmap::iterator.second
หมายถึงความคุ้มค่า