深入探讨vector遍历

一、vector遍历方法

//声明一个vector
std::vector vec{1, 2, 3, 4};
//方法1:使用下标
for(int i = 0; i < vec.size(); ++i){
    std::cout << vec[i] << ' ';
}
//方法2:使用迭代器
for(auto it = vec.begin(); it != vec.end(); ++it){
    std::cout << *it << ' ';
}
//方法3:使用范围for循环
for(auto i : vec){
    std::cout << i << ' ';
}

vector是一种动态数组,其具有可变大小的数组容器,使用vector遍历一般有三种方法,分别是使用下标、使用迭代器和使用范围for循环。使用下标访问比其他方法稍微快一些,但需要注意边界问题;使用迭代器比较安全,可以访问vector中的任何元素;使用范围for循环代码简洁,但不能修改vector中元素的值。

二、vector遍历删除

1. vector遍历删除对象c

//声明一个vector
std::vector vec{'A', 'B', 'C', 'D'};
//迭代器遍历vector删除对象C
for(auto it = vec.begin(); it != vec.end();){
    if(*it == 'C'){
        it = vec.erase(it);
    }else{
        ++it;
    }
}

在遍历vector时,如果需要删除某个对象,可以使用vector中的erase函数进行删除。但是如果直接从vector中删除会改变vector的大小,导致迭代器失效,从而遍历不能正常完成。解决方法是使用迭代器的erase函数删除对象,遍历完成后才进行删除,这样就不会改变vector的大小。

2. vector遍历后要删除元素

//声明一个vector
std::vector vec{1, 2, 3, 4};
//迭代器遍历vector后删除所有数据
for(auto it = vec.begin(); it != vec.end();){
    it = vec.erase(it);
}

在遍历结束后,如果需要删除vector中的所有元素,也可以使用迭代器的erase函数进行删除。需要注意的是,erase函数会返回一个迭代器,指向删除后的下一个对象,因此需要将迭代器重新赋值。

三、vector函数

1. vector erase

//声明一个vector
std::vector vec{1, 2, 3, 4};
//迭代器遍历vector删除下标为2的元素
vec.erase(vec.begin() + 2);

可以使用vector中的erase函数来删除vector中的元素,其参数可以是一个迭代器或一个指向vector中某个元素的指针地址,也可以指定删除的元素数量。

2. vector删除最后一个元素

//声明一个vector
std::vector vec{1, 2, 3, 4};
//使用pop_back删除最后一个元素
vec.pop_back();

如果仅需要删除vector中的最后一个元素,可以使用pop_back函数,该函数会将vector中的最后一个元素删除。

四、总结

本文从vector的遍历方法、删除操作以及常用函数三个方面深入探讨了vector的使用。对于vector的遍历,我们可以使用下标、迭代器和范围for循环三种方法,需要根据实际情况进行选择。在遍历过程中,如果需要删除某个元素,可以使用迭代器的erase函数进行删除。如果需要删除整个vector中的所有元素,需要在遍历完成后再进行删除。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/280495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-21 13:04
下一篇 2024-12-21 13:04

相关推荐

  • Python遍历集合中的元素

    本文将从多个方面详细阐述Python遍历集合中的元素方法。 一、for循环遍历集合 Python中,使用for循环可以遍历集合中的每个元素,代码如下: my_set = {1, 2…

    编程 2025-04-29
  • Python如何遍历字典中的key和value

    本文将详细讲解Python中如何遍历字典中的key和value,包括多种遍历方式以及在遍历过程中的一些应用场景。 一、遍历字典中的key和value 在Python中,字典是一种无…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • 二叉树非递归先序遍历c语言

    本文将为您详细介绍二叉树的非递归先序遍历算法,同时提供完整的C语言代码示例。通过本文,您将了解到二叉树的先序遍历算法,以及非递归实现的方式。 一、二叉树的先序遍历算法介绍 在介绍二…

    编程 2025-04-28
  • Python如何遍历列表

    在Python编程中,列表是一种常用的数据类型,它允许我们存储多个值。但是,我们如何遍历列表并对其中的每个值进行操作呢? 一、for循环遍历列表 fruits = [‘apple’…

    编程 2025-04-28
  • Python遍历字典删除元素

    本文主要介绍Python中如何遍历字典并删除元素。在实际应用中,遍历字典并删除元素是一种非常常见的操作,但需要注意的是,直接在字典中删除元素可能会改变字典中其他元素的索引顺序,因此…

    编程 2025-04-28
  • Python遍历文件夹中的shp文件

    对于GIS分析领域的开发工程师,遍历文件夹中的shp文件是一个常见的需求。Python提供了一种非常便捷的方法来实现这个功能。本文将从以下几个方面进行讲解: 一、`os`模块的使用…

    编程 2025-04-27
  • Python中遍历字符串中的数字两位数及其应用

    本文将从多个方面详细阐述Python中遍历字符串中的数字两位数的应用及实现方法。 一、提取字符串中的数字两位数 Python中提取字符串中的数字两位数可以使用正则表达式,具体代码如…

    编程 2025-04-27
  • Python中for循环遍历列表

    本文将全方位详细介绍Python中for循环遍历列表的方法和技巧,帮助您更加深入理解并灵活运用Python中的for循环。 一、for循环遍历列表的基础用法 在Python中使用f…

    编程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在开发过程中引入了新的API `defineExpose`。在以前的版本中,我们经常使用 `$attrs` 和` $listeners` 实现父组件与子组件之间的通信,但…

    编程 2025-04-25

发表回复

登录后才能评论