Saya yakin Anda tahu bahwa std::vector<X>toko menyimpan sejumlah Xbenda, bukan? Tetapi jika Anda memiliki std::map<X, Y>, apa yang sebenarnya disimpan adalah sejumlah besar std::pair<const X, Y>. Begitulah peta itu - itu menyatukan kunci dan nilai terkait.
Ketika Anda mengulangi lebih dari satu std::map, Anda mengulangi semua ini std::pair. Ketika Anda melakukan dereferensi salah satu iterator ini, Anda mendapatkan std::pairkunci berisi dan nilai yang terkait.
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
Di sini, jika sekarang Anda lakukan *it, Anda akan mendapatkan std::pairuntuk elemen pertama di peta.
Sekarang tipe std::pairmemberi Anda akses ke elemen-elemennya melalui dua anggota: firstdan second. Jadi jika Anda telah seorang std::pair<X, Y>yang disebut p, p.firstadalah Xobjek dan p.secondmerupakan Yobjek.
Jadi sekarang Anda tahu bahwa dereferencing std::mapiterator memberi Anda std::pair, Anda kemudian dapat mengakses elemen-elemennya dengan firstdan second. Misalnya, (*it).firstakan memberi Anda kunci dan (*it).secondakan memberi Anda nilai. Ini setara dengan it->firstdan it->second.
std::mapmenyimpan kunci dan nilai .map::iterator.secondmengacu pada nilai .