2

特定の基準を満たす要素をあるベクターから別のベクターにコピーしたいのですが、手書きのループは使用しません。例えば、

std::vector<double> source; // somehow filled elsewhere
std::vector<double> result;

for( std::vector<double>::const_iterator it = source.begin(); it != source.end(); ++it )
{
   if ((*it) % 2)
   {
      result.push_back(*it);
   }
}

上記のコードは、手書きのループを使用してresult. 手書きのループなしでこれを行うにはどうすればよいでしょうか?

4

1 に答える 1

4

あなたはそうすることができstd::copy_if()ますstd::back_inserter()。適切な値の初期シーケンスを取得するには、を使用できますstd::generate_n()。私は物事をタイプアウトすることができましたが、宿題をしたほうがいいでしょう。

于 2012-10-19T22:12:19.310 に答える