Saya yakin Anda tahu bahwa std::vector<X>
toko menyimpan sejumlah X
benda, 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::pair
kunci 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::pair
untuk elemen pertama di peta.
Sekarang tipe std::pair
memberi Anda akses ke elemen-elemennya melalui dua anggota: first
dan second
. Jadi jika Anda telah seorang std::pair<X, Y>
yang disebut p
, p.first
adalah X
objek dan p.second
merupakan Y
objek.
Jadi sekarang Anda tahu bahwa dereferencing std::map
iterator memberi Anda std::pair
, Anda kemudian dapat mengakses elemen-elemennya dengan first
dan second
. Misalnya, (*it).first
akan memberi Anda kunci dan (*it).second
akan memberi Anda nilai. Ini setara dengan it->first
dan it->second
.
std::map
menyimpan kunci dan nilai .map::iterator.second
mengacu pada nilai .