如何复制除一个特定元素之外的向量?

Adi*_*be7 4 c++ stl vector

我有一个带有一些值的向量。如何将它复制到另一个向量,以便复制除特定值之外的所有值(位于位置x-x当然将是一个参数)?

此外,我想将位置的值用于x其他用途,所以我希望将其保存。

有简单的方法吗?

jua*_*nza 5

如何复制除一个特定值之外的 stl 向量?

您可以使用std::copy_if

std::vector<T> v = ....;
std::vector<T> out;
T x = someValue;
std::copy_if(v.begin(), v.end(), std::back_inserter(out), 
             [x](const T& t) { return t != x; });
Run Code Online (Sandbox Code Playgroud)

如果您没有 C++11 支持,您可以std::remove_copy_if相应地使用和调整谓词的逻辑。