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

How to delete more than one element from an array in C++?

本文关键字:删除 元素 数组 C++      更新时间:2023-10-16

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

数组在

C++中不可调整大小。 可调整大小的容器的最佳选择是std::vector,您将将其用作:

    std::vector<int> v = {1,3,5,8,9,7};

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

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

但这只会打乱你vector周围的元素,使它们都排在最后。 要实际擦除它们,您需要调用:

   v.erase(new_end, v.end());