21xrx.com
2024-11-08 22:13:51 Friday
登录
文章检索 我的文章 写文章
C++ map的key删除元素方法
2023-07-05 06:55:59 深夜i     --     --
C++ map key 删除 元素

C++ map是一种键值对存储的数据结构,可以根据键快速访问值。在使用map时,有时需要删除某些元素,特别是删除key值对应的元素。本文将介绍在C++中如何通过key删除map中的元素。

方法一:使用erase函数

map中提供了erase函数来删除元素,只需要传入要删除的key值作为参数即可。例如:


std::map<int, std::string> myMap =

{

  1,

   "banana",

   "cherry"

};

myMap.erase(2); // 删除key为2的元素

for (auto& pair : myMap)

  std::cout << pair.first << ": " << pair.second << std::endl;

运行结果:


1: apple

3: cherry

方法二:使用iterator

除了erase函数外,还可以通过迭代器iterator来删除元素。首先需要用find函数查找到目标key的迭代器,然后使用erase函数删除该迭代器指向的元素。例如:


std::map<int, std::string> myMap =

{

   "apple",

   "banana",

  3

};

auto it = myMap.find(2); // 查找key为2的元素

if (it != myMap.end())

{

  myMap.erase(it);  // 通过迭代器删除元素

}

for (auto& pair : myMap)

  std::cout << pair.first << ": " << pair.second << std::endl;

运行结果同样是:


1: apple

3: cherry

使用上述两种方法都能够轻松删除map中的指定key值的元素。需要注意的是,在删除元素后必须更新迭代器,否则可能会出现错误。此外,还要注意删除元素后map的size会减少。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复