-1

如何打印多图矢量?例如,我有一个看起来像这样的向量:

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;
   }
}
4

1 回答 1

1

i外循环中的变量for指向 a 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;
  }
}
于 2013-03-07T03:55:42.130 回答