Eminim ki bir std::vector<X>mağaza bir sürü Xnesne saklar , değil mi? Ama varsa std::map<X, Y>, aslında depoladığı şey bir sürü std::pair<const X, Y>s. Bir harita tam olarak budur - anahtarları ve ilişkili değerleri birleştirir.
Bir üzerinden std::mapyinelediğinizde, tüm bunları yinelersiniz std::pair. Bu yineleyicilerden birini iptal ettiğinizde std::pair, anahtarı ve ilişkili değerini içeren bir anahtar alırsınız .
std::map<std::string, int> m = /* fill it */;
auto it = m.begin();
Burada, şimdi yaparsanız *it, std::pairharitadaki ilk öğe için.
Artık tür std::pair, öğelerine iki üye aracılığıyla erişmenizi sağlar: firstve second. Eğer bir varsa Yani std::pair<X, Y>denilen p, p.firstbir olan Xnesne ve p.secondbir olduğunu Ynesne.
Artık bir std::mapyineleyicinin silme işleminin size bir verdiğini std::pairbiliyorsunuz, ardından öğelerine firstve ile erişebilirsiniz second. Örneğin, (*it).firstsize anahtarı (*it).secondverecek ve size değeri verecektir. Bunlar ile eşdeğerdir it->firstve it->second.
std::map, bir anahtar ve bir değer saklar . değerimap::iterator.secondifade eder .