C++ vector 删除元素:使用迭代器

想要从 C++ vector 中删除特定元素?erase() 函数结合迭代器可以轻松实现!

代码示例:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {10, 20, 30, 40, 50};

    // 查找元素并删除
    auto it = std::find(nums.begin(), nums.end(), 30);
    if (it != nums.end()) {
        nums.erase(it); // 删除迭代器指向的元素
        std::cout << 'Element deleted' << std::endl;
    } else {
        std::cout << 'Element not found' << std::endl;
    }

    // 打印剩余元素
    std::cout << 'Updated vector: ';
    for (const auto& num : nums) {
        std::cout << num << ' ';
    }
    std::cout << std::endl;

    return 0;
}

代码解释:

  1. 查找目标元素:
    • 使用 std::find(nums.begin(), nums.end(), 30) 在 vector nums 中查找值为 30 的元素。
    • std::find() 返回一个迭代器,指向查找到的元素。
  2. 删除元素:
    • 如果 it 不等于 nums.end()(表示找到了元素),则使用 nums.erase(it) 删除迭代器 it 指向的元素。
  3. 输出结果:
    • 迭代打印 nums 中剩余的元素。

重要提示:

  • 调用 erase() 后:
    • 被删除元素之后的元素会自动前移,填补空缺。
    • vector 的大小会减 1。

希望本教程能帮助你理解如何使用迭代器从 C++ vector 中删除元素。 还有更多 C++ vector 操作技巧,敬请关注!

C++ vector 删除元素:使用迭代器高效操作

原文地址: https://www.cveoy.top/t/topic/Q4j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录