C++删除vector中所有处于偶数下标位置的元素
作者:野牛程序员:2023-07-24 07:24:22 C++阅读 2782
要删除C++中vector中所有处于偶数下标位置的元素,可以使用循环遍历的方法,或者使用迭代器进行操作。以下是两种方法的示例代码:
方法一:使用循环遍历删除偶数下标元素
#include <iostream> #include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 注意,由于每次删除元素后vector的大小会发生变化,所以使用while循环更为安全 int index = 0; while (index < numbers.size()) { if (index % 2 == 0) { numbers.erase(numbers.begin() + index); // 删除偶数下标元素 } else { index++; // 奇数下标元素,继续遍历下一个 } } // 输出结果 for (int num : numbers) { std::cout << num << " "; } return 0; }
方法二:使用迭代器删除偶数下标元素
#include <iostream> #include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 使用迭代器遍历vector for (auto it = numbers.begin(); it != numbers.end(); ) { if (std::distance(numbers.begin(), it) % 2 == 0) { it = numbers.erase(it); // 删除偶数下标元素,并返回下一个有效迭代器 } else { ++it; // 奇数下标元素,继续遍历下一个 } } // 输出结果 for (int num : numbers) { std::cout << num << " "; } return 0; }
无论使用哪种方法,运行结果都会是:2 4 6 8 10
。注意在循环中删除元素时,需要适当地更新迭代器或索引,以避免跳过元素或访问无效位置。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892