如何在C++中从数组中删除多个元素?

1 c++ arrays element

我有一个问题.如何从C++中的一维数组中删除多个元素?假设我有一个数组A = {1,3,5,8,9,7},我想从数组A中删除假设3,5,7.如果有人知道任何有效的算法,请告诉我.

Sir*_*Guy 7

数组在C++中不可调整大小.可调整大小的容器的最佳选择是std::vector您将用作:

    std::vector<int> v = {1,3,5,8,9,7};
Run Code Online (Sandbox Code Playgroud)

然后通过一些谓词删除元素:

   auto new_end = std::remove_if(v.begin(), v.end(),
                                 std::bind(std::less<int>(), _1, 6));
Run Code Online (Sandbox Code Playgroud)

但是这只会改变你周围的元素,vector以便它们都在最后.要实际擦除它们,您需要调用:

   v.erase(new_end, v.end());
Run Code Online (Sandbox Code Playgroud)