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答案)。