vector迭代器遍历删除元素怎么实现

avatar
作者
筋斗云
阅读量:0

要在使用迭代器遍历vector并删除元素,可以使用以下方法:

  1. 使用迭代器遍历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 i : vec) {         std::cout << i << " ";     }      return 0; } 
  1. 使用remove_if()算法结合erase()方法删除元素。
#include <iostream> #include <vector> #include <algorithm>  int main() {     std::vector<int> vec = {1, 2, 3, 4, 5};      vec.erase(std::remove_if(vec.begin(), vec.end(), [](int i) { return i % 2 == 0; }), vec.end());      for(int i : vec) {         std::cout << i << " ";     }      return 0; } 

以上两种方法都能实现使用迭代器遍历vector并删除元素的功能,选择哪种方法取决于个人偏好和实际需求。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!