迭代器练习 题目1: 给定一个std::vector<int>,编写一段代码,使 用迭代器将该向量中的所有奇数元素删除。请在删除 后输出剩余的元素。 要求: •使用迭代器遍历并修改向量。 •不能使用std::remove_if或其他算法函数。
时间: 2024-09-19 19:08:28 浏览: 39
迭代器练习可以这样完成:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 示例向量
// 创建一个指向向量起始位置的迭代器
auto it = vec.begin();
while (it != vec.end()) { // 遍历整个向量
if (*it % 2 != 0) { // 检查当前元素是否为奇数
// 使用前一个元素替换奇数元素,然后移动迭代器到下一个位置
if (it != vec.begin()) {
*it - 1 = *it; // 如果不是第一个元素,就向前一个元素赋值
}
++it; // 移动到下一个元素
} else {
// 如果元素是偶数,直接跳过
++it;
}
}
// 输出剩余的偶数元素
for (auto& num : vec) {
std::cout << num << " ";
}
std::cout << "\n";
return 0;
}
```
在这个例子中,我们遍历向量,当遇到奇数时,我们会把当前元素复制到它前面的位置(如果这不是第一个元素),然后跳过这个奇数元素。最后只留下偶数元素。
阅读全文