21xrx.com
2025-03-28 18:46:26 Friday
文章检索 我的文章 写文章
如何利用C++的map进行循环遍历和删除操作?
2023-07-10 19:26:10 深夜i     8     0
C++ map 循环遍历 删除操作

C++中的map是一种非常常用的关联数组,可以用于存储键值对。想要对map进行遍历和删除操作的话,我们可以使用以下几种方法。

遍历操作:

1.使用迭代器:可以使用map的迭代器遍历map,迭代器可以通过循环来实现遍历操作,使用迭代器也可以实现元素的查找和删除操作。

示例代码如下:

c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> my_map = {1, "banana", "orange", "lemon"};
map<int, string>::iterator it;
for (it = my_map.begin(); it != my_map.end(); it++)
  cout << it->first << " : " << it->second << endl;
return 0;
}

2.使用范围for循环:利用C++11新增的范围for循环,可以方便地遍历map中的所有元素。

示例代码如下:

c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> my_map = {1, 2, 3, 4};
for (auto& m : my_map)
  cout << m.first << " : " << m.second << endl;
return 0;
}

删除操作:

1.使用迭代器:map的迭代器不仅可以用于遍历操作,也可以用于删除操作。使用迭代器删除元素时,需注意操作后迭代器的指向位置。

示例代码如下:

c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> my_map = { "apple", "banana", "orange", 4};
map<int, string>::iterator it;
for (it = my_map.begin(); it != my_map.end(); ) {
  if (it->first == 2){
    it = my_map.erase(it);
  }else {
    it ++;
  }
}
return 0;
}

2.使用关键字删除:使用map的成员函数erase()可通过指定关键字来删除指定元素。

示例代码如下:

c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, string> my_map = {1, 2, "orange", 4};
my_map.erase(2);
return 0;
}

综上所述,使用C++的map进行循环遍历和删除操作的方法还比较简单易懂,希望对大家有所帮助。

  
  

评论区