21xrx.com
2024-11-22 06:05:49 Friday
登录
文章检索 我的文章 写文章
如何利用C++的map进行循环遍历和删除操作?
2023-07-10 19:26:10 深夜i     --     --
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进行循环遍历和删除操作的方法还比较简单易懂,希望对大家有所帮助。

  
  

评论区

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