Yineleyici->ikinci olarak ne anlama geliyor?
C std::map<>::iterator
Bir türü nedir?
Bildiğimiz bir nesne it
tipi std::map<A,B>::iterator
bir aşırı operator ->
döner std::pair<A,B>*
std::pair<>
first
second
üyesi.
Ama, bu iki üye karşılık, ne ve neden değer it->second
olarak göster erişmelerine izin var mı?
CEVAP
X
std::vector<X>
mağazalar bir bir sürü nesneleri biliyorsun eminim, değil mi? Ama eğer varsa std::map<X, Y>
aslında depolar ne std::pair<const X, Y>
s bir sürü. Bu bir harita değil - birlikte anahtarını ve ilişkili değerleri bulabilirsiniz.
std::map
üzerinde yineleme zaman bu yineleme üzerinde sen std::pair
ler. Bu kullanımına bir çözümlemesi, std::pair
bir anahtarı içeren ve onun ilişkili değeri olsun.
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
Eğer şimdi burada, *it
göster ilk öğe için std::pair
alacak.
Şimdi yazın std::pair
iki üyesi üzerinden öğelerine erişim sağlar: first
second
. Eğer öyleyse std::pair<X, Y>
p
, p.first
adlı X
bir nesnedir ve p.second
Y
bir nesnedir.
Şimdi std::map
bir yineleyici kaldırma std::pair
first
second
ile öğelerine erişebilirsiniz verir biliyorsun. Örneğin, 33* *sana anahtarı verecek ve (*it).second
sana değer verecektir. Bu it->first
it->second
eşdeğerdir.
^M Vim karakter olarak ne anlama geliy...
Tilde (~) benim besteci olarak ne anla...
GERİSİ tam olarak ne anlama geliyor? V...
Süreli Düz Eski Java nesneleri(POJO) t...
'Maymun Yama' Ruby tam olara...