21xrx.com
2024-12-23 00:17:33 Monday
登录
文章检索 我的文章 写文章
如何在C++中遍历Map?
2023-06-25 03:32:15 深夜i     --     --
C++ Map 遍历

Map是一种有序的键-值对集合,很多时候在C++中会用到。在实际运用中,常常需要遍历Map来获取其中的元素。下面介绍两种在C++中遍历Map的方法。

方法一:使用迭代器遍历Map

Map中的元素是以键值对的形式存在的,因此我们需要使用Map的迭代器来遍历Map。遍历的过程中,使用迭代器先指向Map的开头,然后循环输出每个元素的键和值。代码如下:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> myMap;

  myMap.insert(pair<int, string>(1, "apple"));

  myMap.insert(pair<int, string>(2, "banana"));

  myMap.insert(pair<int, string>(3, "orange"));

  map<int, string>::iterator iter;

  for (iter = myMap.begin(); iter != myMap.end(); iter++)

    cout << iter->first << ": " << iter->second << endl;

  

  return 0;

}

上述代码中,使用了迭代器iter来遍历myMap中的元素,将每个元素的键用first表示,值用second表示。在循环中,输出iter指向的元素的first和second。

方法二:使用C++11中的range-based for循环遍历Map

C++11中增加了一种C++11新特性——range-based for循环,可以使用它来遍历Map。使用range-based for循环会自动将Map中的每个元素赋值给一个临时变量,从而省略了手动定义循环变量的过程。


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> myMap;

  myMap.insert(pair<int, string>(1, "apple"));

  myMap.insert(pair<int, string>(2, "banana"));

  myMap.insert(pair<int, string>(3, "orange"));

  for (auto &item : myMap)

    cout << item.first << ": " << item.second << endl;

  

  return 0;

}

上述代码中,使用range-based for循环遍历了myMap中的元素。range-based for循环的语法格式为“for(auto &item : myMap)”,其中item表示临时变量,auto表示变量类型自动推导。在循环中,输出item的first和second。

无论使用哪种方法遍历Map,都需要了解Map中存储的元素顺序、元素的键值和值类型等信息,才能正确地使用遍历方法。

  
  

评论区

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