21xrx.com
2024-06-03 02:08:21 Monday
登录
文章检索 我的文章 写文章
C++ Map的部分元素遍历和删除
2023-07-10 16:10:53 深夜i     --     --
C++ Map 元素遍历 删除

C++中的Map是一个非常常用的容器,它允许我们通过键值对的方式储存数据,并且能够快速地通过键来查找相应的值。然而,当我们需要遍历Map的时候,有时候我们只需要访问其中的一部分元素,或是需要删除其中的某一个元素。这时候,我们就需要了解如何进行部分元素遍历和删除操作。

部分元素遍历

当我们需要遍历Map中的部分元素时,可以使用迭代器来实现。C++中的迭代器类似于指针,它允许我们依次访问容器中的元素。下面是一个简单的示例代码:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  map<string, int> mymap;

  mymap["A"] = 1;

  mymap["B"] = 2;

  mymap["C"] = 3;

  mymap["D"] = 4;

  map<string, int>::iterator it;

  for (it = mymap.begin(); it != mymap.find("C"); it++)

  

    cout << it->first << " => " << it->second << endl;

  

  return 0;

}

在这个示例代码中,我们首先创建了一个名为mymap的Map。然后,我们向其中添加了四个键值对。在遍历Map时,我们使用了一个迭代器it来依次访问Map中的每个元素。但是有一个限制条件,我们只遍历了Map中"AB"两个元素,而"CD"两个元素没有被遍历。

这是因为我们在for循环的终止条件中使用了mymap.find("C")。find函数会查找Map中键为"C"的元素,并返回一个指向该元素的迭代器。由于迭代器的比较是基于指针的比较,因此我们在for循环中使用了it != mymap.find("C")来表示只遍历键为"A"和"B"的元素。

删除Map中的元素

除了访问Map中的部分元素外,我们有时候还需要删除其中的某一个元素。C++中的Map并没有提供直接删除元素的函数,我们需要使用erase函数来实现。erase函数可以接收两个参数,第一个参数是要删除元素的键,第二个参数表示要删除的元素的个数。如果第二个参数未指定,默认值为1。

下面是一个示例代码,演示了如何删除Map中的元素:


#include <iostream>

#include <map>

using namespace std;

int main()

{

  map<string, int> mymap;

  mymap["A"] = 1;

  mymap["B"] = 2;

  mymap["C"] = 3;

  mymap["D"] = 4;

  mymap.erase("C");

  map<string, int>::iterator it;

  for (it = mymap.begin(); it != mymap.end(); it++)

  

    cout << it->first << " => " << it->second << endl;

  

  return 0;

}

在这个示例代码中,我们先创建了一个名为mymap的Map,并向其中添加了四个键值对。然后,我们使用mymap.erase("C")的方式删除了键为"C"的元素。接着,我们使用迭代器it依次遍历mymap中的元素,并输出它们的键和值。

综上,通过掌握上述C++ Map部分元素遍历和删除的方法,可以有效地提高我们的编程效率。

  
  

评论区

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