我想将符合某些条件的一个向量中的元素复制到另一个向量中,但不使用手写循环。例如,
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
。如果没有手写循环,怎么办呢?
答案 0 :(得分:4)
您可以使用std::copy_if()
和std::back_inserter()
来执行此操作。要使用合适的值获取初始序列,可以使用std::generate_n()
。我可以输出一些东西,但你最好做完作业。