21xrx.com
2024-11-25 03:16:51 Monday
登录
文章检索 我的文章 写文章
如何在C++中遍历map的键和值
2023-07-06 07:19:14 深夜i     --     --
C++ map 遍历

在C++中,map是一种非常有用的数据结构,可以存储键值对,并可以通过键来访问相应的值。如果想要遍历map的键和值,有几种方法可以实现。

方法一:使用迭代器

可以使用迭代器来访问map中的每一个键和值。在C++中,map的迭代器可以被认为是一个指向pair类型的指针。因此,可以使用迭代器的first和second成员来访问每个键和相应的值。下面是使用迭代器遍历map的代码示例:


#include <iostream>

#include <map>

#include <string>

int main() {

  std::map<std::string, int> myMap = { 1, "two", 3};

  // 使用迭代器遍历map

  for(auto it = myMap.begin(); it != myMap.end(); ++it) Value: " << it->second << std::endl;

  

  return 0;

}

上面代码中,首先创建了一个包括三个键值对的map,然后使用迭代器对其进行遍历。每次迭代时,使用it->first来访问当前键,使用it->second来访问当前值。

方法二:使用auto关键字

C++11引入了auto关键字,可以自动推断变量的类型。因此,在一些情况下,无需显式地声明迭代器的类型。下面是使用auto关键字来遍历map的示例代码:


#include <iostream>

#include <map>

#include <string>

int main() {

  std::map<std::string, int> myMap = { 1, 2, 3};

  // 使用auto关键字遍历map

  for(auto const& [key, val] : myMap) Value: " << val << std::endl;

  

  return 0;

}

这段代码与前面的示例非常相似,只是在for循环中使用了一个更简洁的语法。通过使用auto const& [key, val]来声明变量,编译器会自动推断出std::pair 类型,并将当前键和值分别赋值给key和val。

总之,以上两种方法都可以有效地遍历map的键和值。选择哪种方法取决于个人喜好和代码风格。

  
  

评论区

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