यदि मैं सही ढंग से समझता हूं तो ये मान किसी भी कुंजी के अंतर्गत प्रदर्शित हो सकते हैं। यदि ऐसा है तो आपको अपने मल्टीमैप पर फिर से शुरू करना होगा और विशिष्ट मानों को मिटा देना होगा।
typedef std::multimap<std::string, int> Multimap;
Multimap data;
for (Multimap::iterator iter = data.begin(); iter != data.end();)
{
// you have to do this because iterators are invalidated
Multimap::iterator erase_iter = iter++;
// removes all even values
if (erase_iter->second % 2 == 0)
data.erase(erase_iter);
}
स्रोत
2010-01-22 08:10:05
एक संभावित ठीक कुंजी और मूल्यों स्वैप करने के लिए हो सकता है:
तो तुम स्थानीय erase_iter चर शुरू करने की जरूरत के बिना थोड़ा अधिक सफाई से निकोला के जवाब पुनर्लेखन कर सकते हैं , यह सब पढ़ने के लिए यह विकल्प नहीं हो सकता है, लेकिन कुछ के लिए हो सकता है। – dangerousdave