繁体   English   中英

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

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

我有一个问题。如何在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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM