📜  C++ STL中的multimap :: erase()(1)

📅  最后修改于: 2023-12-03 14:39:52.051000             🧑  作者: Mango

C++ STL中的multimap::erase()
介绍

multimap::erase()是C++ STL中multimap容器的一个成员函数,用于从multimap中删除指定的元素或一个范围的元素。

语法

以下是multimap::erase()的语法:

iterator erase(iterator position);
iterator erase(const_iterator position);
iterator erase(iterator first, iterator last);
  • position:要删除的元素的迭代器。
  • firstlast:要删除的元素的范围。
返回值
  • 返回一个指向multimap中下一个元素的迭代器,如果删除的是multimap中的最后一个元素,则返回multimapend()迭代器。
示例

下面是一个使用multimap::erase()的示例:

#include <iostream>
#include <map>

int main() {
    std::multimap<int, char> mymap;
    mymap.insert(std::make_pair(1, 'A'));
    mymap.insert(std::make_pair(2, 'B'));
    mymap.insert(std::make_pair(2, 'C'));
    mymap.insert(std::make_pair(3, 'D'));
    mymap.insert(std::make_pair(4, 'E'));

    // 删除值为 'B' 的元素
    auto it = mymap.find(2);
    if (it != mymap.end()) {
        mymap.erase(it);
    }

    // 删除键为 4 的所有元素
    mymap.erase(4);

    // 输出剩余的元素
    for (const auto& pair : mymap) {
        std::cout << pair.first << " : " << pair.second << std::endl;
    }

    return 0;
}

输出:

1 : A
3 : D
注意事项
  • multimap::erase()函数只能删除指定键值的第一个元素。如果你想要删除multimap中所有指定键值的元素,可以使用循环或算法来实现。
  • 删除操作会使迭代器失效,因此在删除元素后,应避免使用已失效的迭代器。
结论

multimap::erase()函数提供了在multimap容器中删除指定元素的便捷方法。通过使用这个函数,你可以轻松地删除单个元素或范围内的元素。