Avatar ·

如何在C++中正确遍历std::map的所有元素?

大家好!我最近开始学习C++,遇到了这样一个任务:需要遍历std::map中的所有键值对,例如将它们输出到屏幕或执行某些操作。我知道map是一个关联容器,每个元素存储为std::pair,但我搞不清楚循环的语法。 我尝试这样写: ```cpp #include #include #include int main() { std::map ages; ages["Alice"] = 30; ages["Bob"] = 25; ages["Charlie"] = 35; // 我的第一个版本——这明显不对 for (int i = 0; i < ages.size(); i++) { std::cout << ages[i] << std::endl; // 编译错误 } } ``` 但这当然不行,因为map的operator[]接受的是key而不是索引。后来我遇到了iterators,写了类似这样的代码: ```cpp for (std::map::iterator it = ages.begin(); it != ages.end(); ++it) { std::cout