c++map迭代器遍历
时间: 2024-12-21 08:09:23 浏览: 4
在C++中,`std::map`是一种关联容器,它按照键值对存储数据,并提供高效的查找、插入和删除操作。遍历`map`通常使用其内置的迭代器,主要有三种类型的迭代器:
1. `begin()`和`end()`迭代器:这两个迭代器分别指向容器的第一个元素(包括第一个键值对)和最后一个元素之后的位置。你可以通过它们开始循环遍历整个`map`。
```cpp
for (auto it = my_map.begin(); it != my_map.end(); ++it) {
std::pair<const Key, Value> pair = *it; // 对于C++11及以上版本,可以简化为 auto [key, value] = *it;
// 这里访问 key 和 value
}
```
2. 键迭代器(`map::iterator`):专门用于按键查找,遍历键。
```cpp
for (auto ki = my_map.key_begin(); ki != my_map.key_end(); ++ki) {
const Key& key = *ki;
// 处理键
}
```
3. 值迭代器(`map::value_iterator`):专门用于按值查找,遍历值。
```cpp
for (auto vi = my_map.value_begin(); vi != my_map.value_end(); ++vi) {
const Value& value = *vi;
// 处理值
}
```
在每次迭代中,你可以通过`*it`或`std::make_pair(key, value)`访问到键值对的对应项。
阅读全文