SORU
16 Mart 2013, CUMARTESİ


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
16 Mart 2013, CUMARTESİ


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::pairler. 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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • steeletraining

    steeletraini

    28 NİSAN 2010