C++删除vector中所有处于偶数下标位置的元素
作者:野牛程序员:2023-07-24 07:24:22 C++阅读 3088
要删除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

