当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击