要从具有特定值的STL向量中删除项,可以使用C++标准库中的std::remove_if
和std::vector::erase
函数组合。以下是一个示例代码:
#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 3, 6, 7, 8, 9};
int value_to_remove = 3;
// 使用 std::remove_if 和 std::vector::erase 删除具有特定值的项
vec.erase(std::remove_if(vec.begin(), vec.end(),
[value_to_remove](int value) { return value == value_to_remove; }),
vec.end());
// 输出处理后的向量
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
在这个示例中,我们有一个包含一些整数的向量,我们希望从中删除值为3的所有项。我们使用std::remove_if
将所有值为3的项移动到向量的末尾,并使用std::vector::erase
函数删除这些项。
这种方法的时间复杂度为O(n),其中n为向量的大小。
领取专属 10元无门槛券
手把手带您无忧上云