打印一个矢量地图

Print a vector of maps

本文关键字:地图 一个 打印      更新时间:2023-10-16

如何打印multimaps向量?例如,我有一个像这样的向量:

typedef std::multimap<double,std::string> resultMap;
typedef std::vector<resultMap> vector_results;

编辑

for(vector_results::iterator i = vector_maps.begin(); i!= vector_maps.end(); i++)
{
   for(vector_results::iterator j = i->first.begin(); j!= i->second.end(); j++)
   {
      std::cout << j->first << " " << j->second <<std::endl;
   }
}

for外环的i变量指向一个resultMap,这意味着j变量的类型需要为resultMap::iterator。将循环重写为

for(vector_results::const_iterator i = vector_maps.begin(); i != vector_maps.end(); ++i)
{
   for(resultMap::const_iterator j = i->begin(); j != i->end(); ++j)
   {
      std::cout << j->first << " " << j->second << std::endl;
   }
}

我将迭代器类型更改为const_iterator,因为迭代器不修改容器元素。


如果你的编译器支持c++ 11的基于范围的for循环,代码可以写得更简洁

for( auto const& i : vector_maps ) {
  for( auto const& j : i ) {
    std::cout << j.first << " " << j.second << std::endl;
  }
}