unordered_map迭代器遍历
时间: 2024-07-28 16:01:08 浏览: 142
unordered_map是C++标准库中的关联容器,它内部实现了哈希表结构,用于存储键值对。迭代器在unordered_map中扮演着关键角色,用于访问和遍历其中的元素。
unordered_map提供了两种类型的迭代器:const_iterator(只读迭代器)和iterator(可修改迭代器)。你可以通过begin()和end()函数获取到容器的第一个和最后一个迭代器,然后按照顺序遍历:
```cpp
std::unordered_map<Key, Value> myMap;
// ...填充map
// 遍历所有键值对
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
const Key& key = it->first; // 键
Value& value = it->second; // 值
// 对于每个键值对做操作
std::cout << "Key: " << key << ", Value: " << value << "\n";
}
// 或者使用const_iterator如果不想修改容器
for (const auto& pair : myMap) {
const Key& key = pair.first;
const Value& value = pair.second;
// ...
}
```
在遍历时,每次迭代会自动跳过已被删除的键值对,保证了数据的一致性。注意,由于unordered_map是无序的,所以迭代顺序并不是插入的顺序。
阅读全文