遍历std::unordered_map
时间: 2024-03-18 07:37:42 浏览: 76
遍历std::unordered_map可以使用迭代器来实现。以下是一种常见的遍历方式:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
// 使用迭代器遍历unordered_map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
}
return 0;
}
```
在上述代码中,我们首先创建了一个std::unordered_map对象myMap,并初始化了一些键值对。然后,我们使用for循环和迭代器来遍历myMap。迭代器it指向当前键值对,通过it->first和it->second可以获取键和值。
相关问题
C++逆向遍历std::unordered_map的方法
在 C++ 中,可以使用反向迭代器 `rbegin()` 和 `rend()` 遍历容器的元素。对于 `std::unordered_map`,可以使用 `unordered_map::reverse_iterator` 类型来定义反向迭代器。
以下是一个简单的示例代码,展示如何使用反向迭代器遍历 `std::unordered_map` 的元素:
```c++
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap = {{"a", 1}, {"b", 2}, {"c", 3}};
// 反向遍历 unordered_map
for (auto it = myMap.rbegin(); it != myMap.rend(); ++it) {
std::cout << it->first << " : " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
c : 3
b : 2
a : 1
```
需要注意的是,反向遍历是以键值对的形式进行的,其中 `it->first` 表示键,`it->second` 表示值。
声明unordered_map,并且循环遍历std::unordered_map<int, FuncServerPtr> m_cmd,举例
unordered_map是C++ STL中的一种关联容器,它存储的数据是以键值对的形式出现,且具有快速查找的特点。其中,键(key)和值(value)都可以是任何可复制的数据类型。
下面是声明一个unordered_map的示例:
```
#include <unordered_map>
using namespace std;
unordered_map<int, string> myMap; //声明一个存储int和string类型的unordered_map
```
循环遍历unordered_map可以使用迭代器来实现,具体代码如下:
```
#include <unordered_map>
using namespace std;
int main() {
unordered_map<int, string> myMap = {{1, "CSDN"}, {2, "AI"}};
// 遍历unordered_map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << "Key: " << it->first << ", Value: " << it->second << endl;
}
return 0;
}
```
上述代码中,我们使用auto关键字定义了一个迭代器it,it指向myMap的起始位置,然后通过it++来遍历整个myMap。
阅读全文