c++使用函数方法遍历map
时间: 2024-04-13 19:22:27 浏览: 83
在C++中,可以使用迭代器来遍历`std::`。以下是一种常见的方法:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
// 使用迭代器遍历map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
return 0;
}
```
上述代码中,我们首先创建了一个`std::map`对象`myMap`,并向其中插入了三个键值对。然后,使用迭代器`it`从`myMap.begin()`开始遍历,直到`myMap.end()`结束。在每次迭代中,通过`it->first`和`it->second`分别获取键和值,并输出到控制台。
相关问题
c++20遍历map方法
C++20引入了`ranges`库,可以使用`std::views::all`和`std::views::keys`等视图函数来遍历`map`。以下是两种遍历`map`的方法:
方法一:使用`std::views::all`和`std::views::keys`视图函数遍历`map`的键和值
```c++
#include <iostream>
#include <map>
#include <ranges>
int main() {
std::map<int, std::string> myMap{{0, "aaa"}, {1, "bbb"}, {2, "ccc"}};
for (const auto& key : myMap | std::views::keys) {
std::cout << "key:" << key << " value:" << myMap[key] << std::endl;
}
return 0;
}
```
输出:
```
key:0 value:aaa
key:1 value:bbb
key:2 value:ccc
```
方法二:使用`std::ranges::for_each`和lambda表达式遍历`map`的键和值
```c++
#include <iostream>
#include <map>
#include <ranges>
int main() {
std::map<int, std::string> myMap{{0, "aaa"}, {1, "bbb"}, {2, "ccc"}};
std::ranges::for_each(myMap, [](const auto& kv) {
std::cout << "key:" << kv.first << " value:" << kv.second << std::endl;
});
return 0;
}
```
输出:
```
key:0 value:aaa
key:1 value:bbb
key:2 value:ccc
```
c++怎样遍历map
在C++中,可以使用迭代器来遍历map。以下是一种常见的遍历map的方法:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
// 使用迭代器遍历map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
return 0;
}
```
在上面的示例中,我们首先创建了一个`std::map`对象`myMap`,并向其中插入了几个键值对。然后,我们使用`begin()`和`end()`函数获取map的起始和结束迭代器,并使用一个循环来遍历整个map。在循环中,我们通过迭代器访问每个键值对,并打印出键和值。
注意,上述示例中使用了`auto`关键字来自动推导迭代器的类型,这是C++11引入的特性。如果你使用的是较早的C++版本,可以将`auto`替换为适当的迭代器类型,例如`std::map<int, std::string>::iterator`。
阅读全文