我有一个问题..如何从 C++ 中的一维数组中删除多个元素?假设我有一个数组 A={1,3,5,8,9,7},我想从数组 A 中删除假设 3,5,7。如果有人知道任何有效的算法,请告诉我。
问问题
924 次
1 回答
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());
于 2013-10-07T15:57:59.927 回答