0

所以,我有一个std::map<int, my_vector>并且我想遍历每个 int 并分析向量。我还没有分析矢量的部分,我仍在试图弄清楚如何遍历地图上的每个元素。我知道可以有一个迭代器,但我不太明白它是如何工作的,而且我不知道是否有更好的方法来做我打算做的事情

4

2 回答 2

6

您可以简单地遍历地图。每个地图元素都是一个std::pair<key, mapped_type>,所以first给你关键,second元素。

std::map<int, my_vector> m = ....;
for (std::map<int, my_vector>::const_iterator it = m.begin(); it != m.end(); ++it)
{
  //it-->first gives you the key (int)
  //it->second gives you the mapped element (vector)
}

// C++11 range based for loop
for (const auto& elem : m)
{
  //elem.first gives you the key (int)
  //elem.second gives you the mapped element (vector)
}
于 2013-03-13T18:08:38.933 回答
1

迭代器是完美的选择。环顾http://www.cplusplus.com/reference/map/map/begin/

于 2013-03-13T18:08:22.580 回答