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 に答える