如何在没有使用循环的条件下插入向量?

时间:2012-10-19 22:09:04

标签: c++

我想将符合某些条件的一个向量中的元素复制到另一个向量中,但不使用手写循环。例如,

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。如果没有手写循环,怎么办呢?

1 个答案:

答案 0 :(得分:4)

您可以使用std::copy_if()std::back_inserter()来执行此操作。要使用合适的值获取初始序列,可以使用std::generate_n()。我可以输出一些东西,但你最好做完作业。