阅读量:0
在 C++ 中,可以使用迭代器(iterator)来遍历 vector 并删除元素。具体的步骤如下:
- 创建一个迭代器,并将其初始化为 vector 的开始位置。
- 使用循环,通过迭代器遍历整个 vector。
- 在循环体内部,判断当前迭代器所指向的元素是否满足需要删除的条件。
- 如果满足删除条件,使用迭代器的 erase() 函数来删除当前元素,并将迭代器指向下一个元素。
- 如果不满足删除条件,将迭代器指向下一个元素。
- 循环结束后,所有满足删除条件的元素都已被删除。
下面是一个示例代码:
#include <iostream> #include <vector> int main() { std::vector<int> vec = {1, 2, 3, 4, 5}; for (auto it = vec.begin(); it != vec.end();) { if (*it % 2 == 0) { it = vec.erase(it); } else { ++it; } } for (int num : vec) { std::cout << num << " "; } return 0; }
输出结果为:1 3 5
在上述示例中,通过使用迭代器遍历 vector,并使用 erase() 函数删除满足条件的偶数元素。注意,在删除元素后,迭代器会自动指向下一个元素,因此不需要在循环中进行额外的迭代器自增操作。