21xrx.com
2024-12-22 21:09:16 Sunday
登录
文章检索 我的文章 写文章
C++ Map的遍历方法
2023-07-09 20:33:07 深夜i     --     --
C++ Map 遍历方法

C++中的Map是一种关联容器,它将键映射到值。Map容器中的元素是以一对键值对(key-value pair)的形式存在的。在使用Map时,需要了解遍历Map容器的方法。

1.使用迭代器遍历Map

迭代器是一种有效的容器遍历技术。可以使用迭代器从Map的第一个元素开始遍历,一直到最后一个元素。以下是使用迭代器遍历Map的示例代码:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> my_map; //创建一个int->string的映射关系

  my_map.insert(pair<int, string>(1, "one"));

  my_map.insert(pair<int, string>(2, "two"));

  my_map.insert(pair<int, string>(3, "three"));

  //遍历Map

  map<int, string>::iterator itr;

  for (itr = my_map.begin(); itr != my_map.end(); ++itr)

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

  

  return 0;

}

上述代码中,首先创建一个Map对象,然后使用`insert`函数向Map中插入三对键值对。然后使用`map ::iterator`声明一个迭代器,类型为Map容器的迭代器类型。接下来使用`begin`函数获取Map容器的第一个元素,并使用`end`函数获取Map容器的最后一个元素。利用for循环及迭代器依次遍历Map容器中的元素,并输出Map中元素的键和值。

2. 使用auto关键字遍历Map

C++ 11中引入的auto关键字可以自动推断变量类型。使用auto关键字可以省略迭代器类型的声明,可以使代码更简洁。以下是使用auto关键字遍历Map的示例代码:


#include <iostream>

#include <map>

using namespace std;

int main() {

  map<int, string> my_map; //创建一个int->string的映射关系

  my_map.insert(pair<int, string>(1, "one"));

  my_map.insert(pair<int, string>(2, "two"));

  my_map.insert(pair<int, string>(3, "three"));

  //遍历Map

  for (auto& i : my_map)

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

  

  return 0;

}

在上述代码中,首先创建一个Map对象,然后使用`insert`函数向Map中插入三对键值对。接下来使用auto关键字声明变量`i`,通过引用来遍历Map容器中的元素,并分别输出Map中元素的键和值。

总结:

以上介绍了使用迭代器和auto关键字遍历C++中的Map容器的方法。当需要访问Map容器中的每个元素时,可以使用迭代器;当需要简化代码时,可以使用auto关键字。要遍历Map容器中的元素并不困难,当你了解了上述两种方法后,你会发现遍历Map只是轻松愉快的小事。

  
  

评论区

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