c++ vector删除所有满足条件的元素
时间: 2023-07-16 15:02:15 浏览: 208
对于一个vector,如果想删除所有满足某个条件的元素,可以采取以下步骤:
1. 使用迭代器遍历vector的每个元素。
2. 判断当前元素是否满足删除条件,如果是,则执行步骤3;如果不是,则继续遍历下一个元素。
3. 使用erase()函数删除当前元素,需要注意的是在删除元素后,迭代器会失效,因此需要使用erase()函数返回的迭代器进行更新。
4. 重复执行步骤2和3,直到遍历完整个vector。
5. 最后得到的vector将不再包含满足条件的元素。
以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 删除所有偶数的元素
for (auto it = vec.begin(); it != vec.end();) {
if (*it % 2 == 0) {
it = vec.erase(it);
} else {
++it;
}
}
// 输出删除后的vector
for (const auto& num : vec) {
std::cout << num << " ";
}
return 0;
}
```
运行结果为:1 3 5 7 9
以上代码通过使用迭代器和erase()函数来实现删除所有满足条件的元素。对于满足条件的元素,将其删除,并更新迭代器,使其指向被删除元素的下一个元素;对于不满足条件的元素,则直接遍历到下一个元素。最终得到的vector即为删除所有满足条件的元素后的结果。
阅读全文