全面了解遍历vector

一、遍历vector容器

vector是C++语言中的一个容器,用于存储一系列相同类型的元素。遍历vector是使用vector的一个基本操作。遍历vector最常见的方式是使用迭代器,可以通过begin()和end()函数获取vector的起始位置和结束位置。下面是一个遍历vector容器的代码示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto it = v.begin(); it != v.end(); it++) {
        cout << *it << " ";
    }

    return 0;
}

以上代码中,我们使用了auto关键字来定义迭代器,用于遍历vector容器。通过循环,我们输出了每个元素的值,输出结果为:1 2 3 4 5。

二、便利vector

除了使用迭代器来遍历vector之外,还可以使用for-each语句来遍历vector。for-each语句可以简化代码,并且更易读。下面是一个使用for-each语句遍历vector的代码示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代码中,我们使用for-each语句来便利vector容器,输出结果与前一个示例相同。

三、遍历vector中的元素

遍历vector中的元素是在遍历vector的基础上,进一步操作vector中的每个元素。对于vector中的元素,在遍历的过程中可以使用下标或迭代器来进行操作。下面是一个使用下标遍历vector并修改元素值的代码示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (unsigned int i = 0; i < v.size(); i++) {
        v[i] *= 2;
    }

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代码中,我们使用下标来遍历vector容器,并将每个元素的值乘以2。通过第二个for-each循环,我们输出了修改过数值的vector容器,输出结果为:2 4 6 8 10。

四、遍历vector删除符合条件的元素

在遍历vector容器过程中,如果需要删除符合条件的元素,需要注意迭代器的失效问题。删除元素的时候应该使用erase()函数,同时使用正确的迭代器指向,来防止删除后迭代器失效。下面是一个遍历vector并删除其中的偶数元素的代码示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};

    for (auto it = v.begin(); it != v.end(); ) {
        if (*it % 2 == 0) {
            it = v.erase(it);
        } else {
            it++;
        }
    }

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代码中,我们使用迭代器遍历vector容器,并删除其中的偶数元素。使用erase()函数删除元素后,迭代器应该指向erase()函数返回的新迭代器,以防止迭代器失效。输出结果为:1 3 5。

五、vector遍历

遍历vector除了使用for循环和for-each语句之外,还可以使用std::for_each()算法进行遍历。与for循环和for-each语句不同,for_each()算法需要传入一个函数对象用于处理每个元素。下面是一个使用for_each()算法遍历vector并进行求和的代码示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    int sum = 0;

    std::for_each(v.begin(), v.end(), [&](int i) {
        sum += i;
    });

    cout << "Sum: " << sum << endl;

    return 0;
}

以上代码中,我们使用for_each()算法遍历vector容器,并使用lambda表达式进行求和操作。输出结果为:Sum: 15。

六、vector遍历删除

除了在遍历容器中删除元素之外,还可以使用std::remove_if()算法进行删除操作。std::remove_if()算法可以删除符合特定条件的元素,并将剩余的元素移到vector的前面。下面是一个使用std::remove_if()算法遍历vector并删除其中偶数元素的代码示例:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    v.erase(std::remove_if(v.begin(), v.end(), [](int i) {
        return i % 2 == 0;
    }), v.end());

    for (auto i : v) {
        cout << i << " ";
    }

    return 0;
}

以上代码中,我们使用std::remove_if()算法遍历vector容器,删除其中的偶数元素。最后我们使用遍历容器的方式输出vector容器的内容,输出结果为:1 3 5。

七、vector大小

在遍历vector容器的过程中,需要知道vector容器中的元素数量,可以使用size()函数获取vector容器中元素的个数。下面是一个输出vector容器大小的代码示例:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v {1, 2, 3, 4, 5};
    cout << "Vector size: " << v.size() << endl;

    return 0;
}

以上代码中,我们输出了vector容器中元素的个数,输出结果为:Vector size: 5。

八、遍历vector里的对象

在实际编程中,vector容器并不仅仅只存储基本数据类型,还可能存储结构体、类等自定义对象。遍历vector中的对象与遍历基本数据类型并没有太大区别,具体使用方式与前面的示例基本相同。下面是一个存储自定义结构体的vector容器,并遍历输出每个元素的成员变量值的代码示例:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

struct Person {
    string name;
    int age;
};

int main() {
    vector<Person> v {
        {"Alice", 20},
        {"Bob", 25},
        {"Charlie", 30},
        {"David", 35},
        {"Ella", 40}
    };

    for (auto it = v.begin(); it != v.end(); it++) {
        cout << "Name: " << it->name << ", Age: " << it->age << endl;
    }

    return 0;
}

以上代码中,我们定义了一个Person结构体,包含name和age两个成员变量。我们将多个Person对象存储在vector容器中,并使用迭代器遍历vector容器,输出每个元素的成员变量值。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZBTZZBTZ
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相关推荐

  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • Python遍历集合中的元素

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

    编程 2025-04-29
  • Python zscore函数全面解析

    本文将介绍什么是zscore函数,它在数据分析中的作用以及如何使用Python实现zscore函数,为读者提供全面的指导。 一、zscore函数的概念 zscore函数是一种用于标…

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

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

    编程 2025-04-29
  • 全面解读数据属性r/w

    数据属性r/w是指数据属性的可读/可写性,它在程序设计中扮演着非常重要的角色。下面我们从多个方面对数据属性r/w进行详细的阐述。 一、r/w的概念 数据属性r/w即指数据属性的可读…

    编程 2025-04-29
  • Python计算机程序代码全面介绍

    本文将从多个方面对Python计算机程序代码进行详细介绍,包括基础语法、数据类型、控制语句、函数、模块及面向对象编程等。 一、基础语法 Python是一种解释型、面向对象、动态数据…

    编程 2025-04-29
  • Matlab二值图像全面解析

    本文将全面介绍Matlab二值图像的相关知识,包括二值图像的基本原理、如何对二值图像进行处理、如何从二值图像中提取信息等等。通过本文的学习,你将能够掌握Matlab二值图像的基本操…

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

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

    编程 2025-04-28
  • 疯狂Python讲义的全面掌握与实践

    本文将从多个方面对疯狂Python讲义进行详细的阐述,帮助读者全面了解Python编程,掌握疯狂Python讲义的实现方法。 一、Python基础语法 Python基础语法是学习P…

    编程 2025-04-28
  • 全面解析Python中的Variable

    Variable是Python中常见的一个概念,是我们在编程中经常用到的一个变量类型。Python是一门强类型语言,即每个变量都有一个对应的类型,不能无限制地进行类型间转换。在本篇…

    编程 2025-04-28

发表回复

登录后才能评论