STL Multimap删除/删除值

Avi*_*ash 17 c++ stl

我有STL Multimap,我想从地图中删除具有特定值的条目,我不想删除整个密钥,因为该密钥可能映射到其他所需的值.

请帮忙.

Nik*_*nić 16

如果我理解正确,这些值可以出现在任何键下.如果是这种情况,您将不得不迭代多图并删除特定值.

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);
}
Run Code Online (Sandbox Code Playgroud)