📜  C++ STL-map.Erase()函数(1)

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

C++ STL 中的 map.erase() 函数

介绍

在 C++ STL 中,map 是一个非常有用的数据结构,它提供了一个键值对应的存储方式,并且支持自动排序和查找。在一个 map 中,每个键值对应一个唯一的键,而每个键都对应一个值。

map.erase()map 容器中的一个成员函数,它可以用来删除一个键值对,也可以删除一定范围内的所有键值对。这个函数使用起来非常简单,但是要注意一些细节。

语法

map.erase(position); map.erase(key); map.erase(first, last);

  • position:一个迭代器,指向一个要删除的元素
  • key:要删除的键
  • firstlast:表示一个范围,用来删除该范围内的所有键值对
功能

map.erase() 函数可以删除一个键值对,也可以删除一定范围内的所有键值对。具体而言,它可以实现以下功能:

  • 删除一个指定的键值对
  • 删除一个指定的键
  • 删除一个给定范围内的所有键值对
示例代码
#include <iostream>
#include <map>

using namespace std;

int main() {
    // 定义一个 map
    map<int, int> myMap;
    // 插入一些数据
    myMap[1] = 1;
    myMap[2] = 2;
    myMap[3] = 3;

    // 删除一个指定的键值对
    myMap.erase(1);
    // 删除一个指定的键
    myMap.erase(2);
    // 删除一个给定范围内的所有键值对
    auto first = myMap.begin();
    auto last = myMap.end();
    myMap.erase(first, last);

    return 0;
}
注意事项
  • 在删除一个元素之后,迭代器会失效。
  • 如果要删除的键不存在,map.erase() 函数会什么都不做
  • 如果要保留对要删除元素后面的元素的迭代器,可以使用 map.erase() 函数返回的迭代器。
总结

在 C++ STL 中的 map 容器提供了一个非常有用的数据结构,它可以储存键值对并支持自动排序和查找。map.erase() 函数可以用来删除一个键值对,也可以删除一定范围内的所有键值对。使用起来非常简单,但是要注意一些细节。