C++中std::vector容器的入门讲解

目录

创建和初始化

插入和删除元素

访问元素

其他操作

总结


在 C++ 中,std::vector 是标准库中最常用的容器之一,它可以根据需要自动扩容,能够高效地插入、删除和访问元素。本文将深入介绍 std::vector 的使用方法,包括创建、初始化、插入、删除、访问元素等方面。

创建和初始化

std::vector 是一个动态数组容器,可以存储同一类型的元素,例如整数、浮点数、字符串等。下面是一个创建和初始化 std::vector 对象的示例代码:

#include <vector>
#include <iostream>

int main() {
    // 创建一个空的 vector 对象
    std::vector<int> myVector;

    // 创建一个含有 5 个元素的 vector 对象
    std::vector<int> myVector2(5);

    // 创建一个含有 5 个元素,每个元素都是 10 的 vector 对象
    std::vector<int> myVector3(5, 10);

    // 创建一个 vector 对象,初始化为另一个 vector 对象的副本
    std::vector<int> myVector4(myVector3);

    // 输出 myVector3 中的元素
    std::cout << "myVector3 中的元素是:" << std::endl;
    for (int i = 0; i < myVector3.size(); ++i) {
        std::cout << myVector3[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

myVector3 中的元素是:
10 10 10 10 10

在上面的代码中,我们创建了四个不同的 std::vector 对象,并分别进行了初始化。第一个 std::vector 对象是一个空的对象,不包含任何元素。第二个 std::vector 对象是含有 5 个元素的对象,但没有指定元素的值,默认初始化为 0。第三个 std::vector 对象是含有 5 个元素的对象,每个元素都是 10。第四个 std::vector 对象是初始化为第三个 std::vector 对象的副本。

插入和删除元素

std::vector 对象可以动态增加和删除元素,我们可以使用 push_back() 函数向 std::vector 对象中添加元素。下面是一个示例代码,展示了如何向 std::vector 对象中添加元素:

#include <vector>
#include <iostream>

int main() {
    // 创建一个空的 vector 对象
    std::vector<int> myVector;

    // 向 vector 中添加元素
    myVector.push_back(1);
    myVector.push_back(2);
    myVector.push_back(3);

    // 输出 vector 中的元素
    std::cout << "vector 中的元素是:" << std::endl;
    for (int i = 0; i < myVector.size(); ++i) {
        std::cout << myVector[i] << " ";
    }
    std::cout << std::endl;

    // 删除 vector 中最后一个元素
    myVector.pop_back();
    
    // 输出 vector 中的元素
    std::cout << "vector 中的元素是:" << std::endl;
    for (int i = 0; i < myVector.size(); ++i) {
        std::cout << myVector[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

vector 中的元素是:
1 2 3
vector 中的元素是:
1 2

在上面的示例代码中,我们首先创建了一个空的 `std::vector` 对象。然后,我们使用`push_back()` 函数向 `std::vector` 对象中添加三个元素。最后,我们使用 `pop_back()` 函数删除了 `std::vector` 对象中的最后一个元素。在每个步骤结束后,我们都输出了 `std::vector` 对象中的元素。

访问元素

`std::vector` 对象可以像数组一样访问其元素。我们可以使用下标运算符(`[]`)或 `at()` 函数来访问 `std::vector` 对象中的元素。下面是一个示例代码,展示了如何访问 `std::vector` 对象中的元素:

#include <vector>
#include <iostream>

int main() {
    // 创建一个含有 3 个元素的 vector 对象
    std::vector<int> myVector(3);
    myVector[0] = 1;
    myVector[1] = 2;
    myVector[2] = 3;

    // 使用下标运算符访问 vector 中的元素
    std::cout << "vector 中的第一个元素是:" << myVector[0] << std::endl;

    // 使用 at() 函数访问 vector 中的元素
    std::cout << "vector 中的第二个元素是:" << myVector.at(1) << std::endl;

    return 0;
}

输出结果为:

vector 中的第一个元素是:1
vector 中的第二个元素是:2

在上面的示例代码中,我们创建了一个含有 3 个元素的 std::vector 对象,并分别使用下标运算符和 at() 函数访问了其中的元素。

其他操作

除了上述操作之外,std::vector 还支持许多其他操作,例如:

  • size():返回 std::vector 对象中元素的个数。
  • capacity():返回 std::vector 对象中已分配的存储空间的大小。
  • reserve(n):为 std::vector 对象分配至少能容纳 n 个元素的存储空间。
  • clear():从 std::vector 对象中删除所有元素。
  • empty():判断 std::vector 对象是否为空。

下面是一个示例代码,展示了如何使用这些操作:

#include <vector>
#include <iostream>

int main() {
    // 创建一个含有 3 个元素的 vector 对象
    std::vector<int> myVector(3);
    myVector[0] = 1;
    myVector[1] = 2;
    myVector[2] = 3;

    // 输出 vector 中元素的个数和已分配的存储空间的大小
    std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
    std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;

    // 为 vector 对象分配至少能容纳 10 个元素的存储空间
    myVector.reserve(10);

    // 输出 vector 中元素的个数和已分配的存储空间的大小
    std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
    std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;

    // 删除 vector 中的所有元素
    myVector.clear();

    // 输出 vector 中元素的个数和已分配的存储空间的大小
    std::cout << "vector 中元素的个数为:" << myVector.size() << std::endl;
    std::cout << "vector 中已分配的存储空间的大小为:" << myVector.capacity() << std::endl;

    // 判断 vector 是否为空
    if (myVector.empty()) {
        std::cout << "vector 为空。" << std::endl;
    } else {
        std::cout << "vector 不为空。" << std::endl;
    }

    return 0;
}

输出结果为:

vector 中元素的个数为:3
vector 中已分配的存储空间的大小为:3
vector 中元素的个数为:3
vector 中已分配的存储空间的大小为:10
vector 中元素的个数为:0
vector 中已分配的存储空间的大小为:10
vector 为空。

在上面的示例代码中,我们首先创建了一个含有 3 个元素的 `std::vector` 对象,并输出了其中的元素个数和已分配的存储空间的大小。然后,我们使用 `reserve()` 函数为 `std::vector` 对象分配至少能容纳 10 个元素的存储空间,并输出了其中的元素个数和已分配的存储空间的大小。接着,我们使用 `clear()` 函数删除了 `std::vector` 对象中的所有元素,并输出了其中的元素个数和已分配的存储空间的大小。最后,我们使用 `empty()` 函数判断 `std::vector` 对象是否为空,并输出了相应的结果。

总结

本文介绍了 std::vector 的用法。 std::vector  是 C++ 标准库中的一个容器,用于存储一组具有相同类型的元素。 std::vector 具有动态分配内存、随机访问、尾部添加和删除元素等特性,是C++中常用的数据结构之一。在使用 std::vector 时,需要注意以下几点:

  • 通过调用 std::vector 的构造函数或 push_back() 函数可以向其中添加元素;
  • 通过下标操作符 [] 可以访问指定位置的元素;
  • 通过调用 size() 函数可以获取 std::vector 中的元素个数;
  • 通过调用 capacity() 函数可以获取 std::vector 中已分配的存储空间的大小;
  • 通过调用 reserve() 函数可以为 std::vector 对象分配至少能容纳指定个数的元素的存储空间;
  • 通过调用 clear() 函数可以删除 std::vector 中的所有元素;
  • 通过调用 empty() 函数可以判断 std::vector 是否为空。

除了上述常用操作外,std::vector 还支持其他许多操作,如插入元素、删除元素、交换 std::vector 对象、查找元素等。在使用 std::vector 时,需要根据具体需求选择合适的操作。

总的来说,std::vector 是一个非常实用的容器,可以帮助我们快速、高效地管理一组元素。对于 C++ 开发者来说,掌握 std::vector 的使用是非常重要的,希望本文能对您有所帮助。

猜你喜欢

转载自blog.csdn.net/qq_50635297/article/details/130265856