温馨提示×

c++ vector遍历删除的方法是什么

c++
小亿
287
2023-11-05 02:28:25
栏目: 编程语言

在 C++ 中,可以使用迭代器(iterator)来遍历 vector 并删除元素。具体的步骤如下:

  1. 创建一个迭代器,并将其初始化为 vector 的开始位置。
  2. 使用循环,通过迭代器遍历整个 vector。
  3. 在循环体内部,判断当前迭代器所指向的元素是否满足需要删除的条件。
  4. 如果满足删除条件,使用迭代器的 erase() 函数来删除当前元素,并将迭代器指向下一个元素。
  5. 如果不满足删除条件,将迭代器指向下一个元素。
  6. 循环结束后,所有满足删除条件的元素都已被删除。

下面是一个示例代码:

#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() 函数删除满足条件的偶数元素。注意,在删除元素后,迭代器会自动指向下一个元素,因此不需要在循环中进行额外的迭代器自增操作。

0