在C++中,map
是一个关联容器,它存储的元素是键值对(key-value pairs),其中每个键都是唯一的,并且自动根据键来排序。遍历map
的方式有几种,但最常用的两种是使用迭代器(iterator)和范围基于的for循环(C++11及以后版本)。这里我将展示这两种方法的示例。
使用迭代器遍历map
#include <iostream>
#include <map>
#include <string>
int main() {
// 创建一个map
std::map<std::string, int> myMap = {
{"apple", 100},
{"banana", 200},
{"cherry", 300}
};
// 使用迭代器遍历map
for (std::map<std::string, int>::iterator it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
// 或者使用auto关键字简化迭代器类型
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
使用范围基于的for循环遍历map
(C++11及以后)
#include <iostream>
#include <map>
#include <string>
int main() {
// 创建一个map
std::map<std::string, int> myMap = {
{"apple", 100},
{"banana", 200},
{"cherry", 300}
};
// 使用范围基于的for循环遍历map
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
在这个例子中,pair
是map
中的一个键值对,pair.first
是键,pair.second
是值。注意,这里使用了const auto&
来避免不必要的拷贝,因为map
中的元素是常量引用,这样可以使代码更高效。
以上就是C++中遍历map
的两种常用方法。选择哪种方法取决于你的具体需求和C++版本。