【发布时间】:2015-08-22 11:55:06
【问题描述】:
给定
std::vector<T> first = /* some given data */, second;
我想移动所有满足某些条件cond(e) 的元素first 到second,即类似
move_if(std::make_move_iterator(first.begin()),
std::make_move_iterator(first.end()),
std::back_inserter(second), [&](T const& e)
{
return cond(e);
});
我无法使用 算法库 确定这一点。那么,我该怎么做呢?
【问题讨论】:
-
std::copy_if后跟std::remove_if怎么样? -
@JoachimPileborg 为什么你认为
remove_copy_if能胜任这项工作? -
copy_if和move_iterator。确保您的谓词通过 const ref 获取其参数。 -
@T.C.对,这会将元素移动到
second。但是,first仍然包含这些元素(即使已经移动了数据)。那么,如何从first中删除它们?