std::vector<X>
, X
nesnesinin bir demetini depoladığını biliyorsunuzdur, değil mi? Ancak, bir std::map<X, Y>
varsa, aslında depoladığı şey, bir grup std::pair<const X, Y>
s'dir. Tam olarak bir harita budur - anahtarları ve ilişkili değerleri bir araya getirir.
std::map
üzerinde yinelediğinizde, tüm bu std::pair
s üzerinde yineleme yapıyorsunuz. Bu yineleyicilerden birini kullandığınızda, anahtarı ve ilişkili değerini içeren bir std::pair
alırsınız. Şimdi *it
yaparsanız Burada
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
, haritanın ilk element için std::pair
alacak.
Artık std::pair
tipi, öğelerine iki üyeden erişmenizi sağlar: first
ve second
. Yani, p
adı verilen std::pair<X, Y>
, p.first
X
nesnesi ve p.second
nesnesinin Y
nesnesidir.
Şimdi de std::map
yineleyici dereferencing size std::pair
sağladığını biliyor, sen first
ve second
ile unsurlarını sonra erişebilir. Örneğin, (*it).first
size anahtarı verecektir ve (*it).second
size değeri verecektir. Bunlar, it->first
ve it->second
ile eşdeğerdir.
A 'std :: map' bir * anahtarı * ve bir * değeri * .'map :: iterator.second' depolar * değer *. –
@AlokSave: Teşekkürler. Yorumunuz, iki cevabı okumaktan çok okuyucuları kurtardı, ki bu da bir tweetin uzunluğuna büzülmüş olabilirdi. – displayName