乐闻世界logo
搜索文章和话题

How to use range-based for() loop with std:: map ?

2 个月前提问
2 个月前修改
浏览次数33

1个答案

1

在C++中,std::map是一个基于红黑树的关联容器,它存储键值对,并通过键来进行自动排序。使用基于范围的for循环(也称为范围for循环)可以方便地遍历std::map中的所有元素。在这个循环中,每次迭代都会访问map中的一个键值对。

范围for循环的基本语法如下:

cpp
for(declaration : container) { // 循环体 }

在使用std::map时,可以这样写:

cpp
#include <iostream> #include <map> int main() { std::map<std::string, int> ageMap; ageMap["Alice"] = 28; ageMap["Bob"] = 25; ageMap["Charlie"] = 30; // 使用范围for循环遍历std::map for(const auto& element : ageMap) { std::cout << "Name: " << element.first << ", Age: " << element.second << std::endl; } return 0; }

在这个例子中,element是一个std::pair<const Key, T>类型的对象,其中element.first表示键(在本例中为人名字符串),而element.second表示与键相关联的值(在本例中为年龄)。通过这种方式,我们可以方便地访问并打印出每个人的名字和年龄。

使用范围for循环的好处包括代码的简洁性和提高可读性,同时避免了迭代器的显式使用,减少了出错的可能性。

2024年7月19日 17:55 回复

你的答案