gpt4 book ai didi

c++ - 从 std::vector 中移除元素

转载 作者:行者123 更新时间:2023-11-28 00:31:31 43 4
gpt4 key购买 nike

我想使用 std::vector v 移除一个元素

v.erase( std::remove_if( std::begin(v), std::end(v), pred), std::end(v) );

我知道可移动元素(如果存在)必须在 index1 和 index2 之间。有什么方法可以将此信息与 remove_if 结合使用吗?

最佳答案

如果只有一个元素要删除,似乎应该使用 std::find_if() 而不是 std::remove_if() 并定位特定范围内的对象:

auto it = std::find_if(v.begin() + index1, v.begin() + index2, pred);
if (it != v.begin() + index2) {
v.erase(it);
}

如果有更多的元素你可以使用

v.erase(std::remove_if(v.begin() + index1, v.begin() + index2, pred), v.begin() + index2);

您可以使用 v.erase() 从内部范围中删除元素。

关于c++ - 从 std::vector 中移除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735891/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com