要在使用迭代器遍历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 i : vec) {
std::cout << i << " ";
}
return 0;
}
- 使用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并删除元素的功能,选择哪种方法取决于个人偏好和实际需求。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/938618.html