c++ - STL Multimap 删除/删除值

标签 c++ stl

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

请帮忙。

最佳答案

如果我理解正确,这些值可以出现在任何键下。如果是这种情况,您将不得不遍历您的 multimap 并删除特定值。

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);
}

关于c++ - STL Multimap 删除/删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2115640/

相关文章:

c++ - Poco HTTPClientSession 将 header 添加到 HTTPRequest

c++ - 如何获得 Windows 线程的返回值?

c++ - 从 std::vector::operator[] 获取返回地址有什么作用?

c++11 - 何时更喜欢 for 循环而不是 std::transform,反之亦然

c++ - 终止管家是什么意思?

c++ - 对象在 = 操作之前超出范围

c++ - 计算非负数的平均值的函数

multithreading - 多个线程之间的数据访问同步

c++ - VisualStudio2008 上的 std::vector 似乎没有得到最佳实现 - 太多的复制构造函数调用

c++ - 如何在 C++ 中传递一个 std-functor 并在不知道它具体是哪个的情况下使用它