21xrx.com
2024-09-20 07:46:58 Friday
登录
文章检索 我的文章 写文章
C++中如何遍历unordered_map?
2023-07-13 02:20:46 深夜i     --     --
C++ unordered_map 遍历

在C++中,unordered_map是一种基于哈希表实现的关联容器,它提供了一种非常高效和灵活的方式来存储和访问键值对。当我们需要在unordered_map中查找或更新某个键值对时,可以通过键来索引相应的值。但有时我们需要遍历整个unordered_map并针对其中的每个键值对进行操作,这就需要使用遍历的方法。

在C++中,遍历unordered_map可以通过迭代器实现。迭代器是一种指向容器元素的对象,类似于指针,可以用于遍历和访问容器中的元素。unordered_map提供了两种迭代器,分别为iterator和const_iterator,前者可以用于修改元素,后者只能用于访问元素。

具体遍历unordered_map的方法如下:


#include <iostream>

#include <unordered_map>

using namespace std;

int main() {

  // 创建一个unordered_map

  unordered_map<int, string> my_map = { "apple", "banana", 3};

  // 遍历unordered_map

  for(auto it = my_map.begin(); it != my_map.end(); ++it)

    cout << "Key: " << it->first << " Value: " << it->second << endl;

  

  return 0;

}

以上代码创建了一个unordered_map,然后使用for循环遍历了整个unordered_map,并输出了每个键值对的键和值。在每次迭代中,使用迭代器it指向下一个键值对,并使用it->first和it->second访问键和值。

此外,还可以使用范围for循环来遍历unordered_map,如下所示:


#include <iostream>

#include <unordered_map>

using namespace std;

int main() {

  // 创建一个unordered_map

  unordered_map<int, string> my_map = { "apple", 2, "orange"};

  // 遍历unordered_map

  for(const auto& p : my_map)

    cout << "Key: " << p.first << " Value: " << p.second << endl;

  

  return 0;

}

以上代码中的范围for循环使用了auto关键字和引用符号来自动推断元素类型,并直接访问了元素的键和值。这种方法更简单和直观,但不能用于修改元素。

在使用unordered_map时,遍历是一项非常基础和常用的操作。通过迭代器或范围for循环,我们可以轻松地遍历整个unordered_map并执行所需的操作。

  
  
下一篇: C++6.0官网下载

评论区

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