在 C++ 中,你可以使用 std::map 的 erase 函数来删除 map 中的元素。erase 函数有多种用法,取决于你要删除的元素的类型。

  1. 删除指定键的元素:

    std::map<int, std::string> myMap;
    myMap[1] = 'One';
    myMap[2] = 'Two';
    myMap[3] = 'Three';
    
    myMap.erase(2); // 删除键为2的元素
    
  2. 删除指定迭代器的元素:

    std::map<int, std::string> myMap;
    myMap[1] = 'One';
    myMap[2] = 'Two';
    myMap[3] = 'Three';
    
    auto it = myMap.find(2);
    if (it != myMap.end()) {
        myMap.erase(it); // 删除迭代器指向的元素
    }
    
  3. 删除指定范围内的元素:

    std::map<int, std::string> myMap;
    myMap[1] = 'One';
    myMap[2] = 'Two';
    myMap[3] = 'Three';
    
    auto start = myMap.find(1);
    auto end = myMap.find(3);
    if (start != myMap.end() && end != myMap.end()) {
        myMap.erase(start, end); // 删除[start, end)范围内的元素
    }
    

请注意,删除元素可能会导致 map 的大小和迭代器失效,因此在删除元素后,要小心处理相关代码。

C++ map 删除元素:使用 erase 函数详解

原文地址: https://www.cveoy.top/t/topic/brn6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录