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 回答