根据 C 中的值擦除向量元素
尝试根据向量元素的值而不是位置来擦除向量元素时会出现此问题。考虑一个具有以下值的向量:
5 9 2 8 0 7
通常,我们可以使用以下代码删除包含值“8”的第四个元素:
myVector.erase(myVector.begin() + 4);
但是,是否还有更多直接通过值删除元素的方法?
std::remove() 来救援
std::remove() 函数在这里发挥作用。它从范围中删除与特定值匹配的元素。与erase()结合,我们可以使用擦除删除惯用法来实现我们的目标:
#include <algorithm> ... myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end());
这个组合迭代向量,删除所有“8”的实例,然后擦除修改的范围。生成的向量现在包含:
5 9 2 0 7
以上是如何在C中根据值删除向量元素?的详细内容。更多信息请关注PHP中文网其他相关文章!