C++ 遍历std :: map或std :: multimap
示例
std::map或std::multimap可以通过以下方式遍历:
std::multimap< int , int > mmp{ {1, 2}, {3, 4}, {6, 5}, {8, 9}, {3, 4}, {6, 7} }; //基于范围的循环-自C++11起 for(const auto &x: mmp) std::cout<<x.first<<":"<<x.second<< std::endl; //转发循环的迭代器:它将循环遍历第一个元素到最后一个元素 //it will be a std::map< int, int >::iterator for (auto it = mmp.begin(); it != mmp.end(); ++it) std::cout<< it->first <<":"<< it->second << std::endl; //用迭代器做点什么 //向后循环的迭代器:它将通过最后一个元素循环到第一个元素 //it will be a std::map< int, int >::reverse_iterator for (auto it = mmp.rbegin(); it != mmp.rend(); ++it) std::cout<< it->first <<" "<< it->second << std::endl; //用迭代器做点什么
在对astd::map或a进行迭代时std::multimap,auto首选使用以避免不必要的隐式转换(有关更多详细信息,请参见此SO答案)。