如何打印出 C 映射值?

新手上路,请多包涵

我有一个 map 像这样:

 map<string, pair<string,string> > myMap;

我已经使用以下方法将一些数据插入到我的地图中:

 myMap.insert(make_pair(first_name, make_pair(middle_name, last_name)));

我现在如何打印地图中的所有数据?

原文由 Zhi Rui 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 549
2 个回答
for(map<string, pair<string,string> >::const_iterator it = myMap.begin();
    it != myMap.end(); ++it)
{
    std::cout << it->first << " " << it->second.first << " " << it->second.second << "\n";
}

在 C++11 中,您不需要拼出 map<string, pair<string,string> >::const_iterator 。你可以使用 auto

 for(auto it = myMap.cbegin(); it != myMap.cend(); ++it)
{
    std::cout << it->first << " " << it->second.first << " " << it->second.second << "\n";
}

注意 cbegin()cend() 函数的使用。

更简单的是,您可以使用基于范围的 for 循环:

 for(const auto& elem : myMap)
{
   std::cout << elem.first << " " << elem.second.first << " " << elem.second.second << "\n";
}

原文由 Armen Tsirunyan 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以像这样尝试 _基于范围的循环_:

 for(auto& x:myMap){
        cout<<x.first<<" "<<x.second.first<<" "<<x.second.second<<endl;
}

原文由 jumael khan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题