c++map怎么遍历
时间: 2024-07-23 22:01:32 浏览: 74
C++11 unordered_map与map(插入,遍历,Find)效率对比。
在 C++ 中,`std::map` 是一种关联容器,它使用红黑树作为底层数据结构,存储键值对,其中每个键都是唯一的。遍历 `std::map` 通常有三种常用的方式:
1. **迭代器遍历**:
```cpp
std::map<KeyType, ValueType> myMap;
// ... (填充 map)
for (const auto& pair : myMap) {
KeyType key = pair.first; // 键
ValueType value = pair.second; // 值
// 对每一对进行操作
}
```
使用范围for循环,可以直接获取键值对。
2. **下标访问**:
如果你知道键,可以使用下标从0开始依次查找对应元素:
```cpp
for (size_t i = 0; i < myMap.size(); ++i) {
KeyType key = myMap.begin()->first + i; // 注意这是假设键有序的,否则可能会导致错误
ValueType value = myMap[key];
}
```
3. **成员函数`begin()`和`end()`**:
这些函数返回指向容器起始位置和结束前一个位置的迭代器,你可以使用它们配合迭代器进行遍历:
```cpp
std::map<KeyType, ValueType>::iterator it = myMap.begin();
std::map<KeyType, ValueType>::iterator end = myMap.end();
while (it != end) {
KeyType key = it->first;
ValueType value = it->second;
++it;
}
```
阅读全文