📜  C++ STL 中的向量列表及示例(1)

📅  最后修改于: 2023-12-03 14:39:50.494000             🧑  作者: Mango

C++ STL 中的向量列表及示例

STL(标准模板库)是 C++ 中的一个重要特性,它将一些常用的数据结构和算法封装在库中,使得程序员可以更加高效地开发应用程序。其中,向量(vector)是一个常用的数据结构,它和数组非常相似,但是具有更多的优点。本篇文章将介绍 C++ STL 中的向量列表及示例,以帮助程序员更好地理解和使用此数据结构。

向量的定义

向量(vector)是一个封装了动态大小数组的顺序容器(sequence container)。在向量中,数据是线性排列在一段连续的内存区域中,可以通过下标随机访问,同时支持快速的尾部插入和删除操作。与数组相比,向量可以在运行时动态调整大小,同时也可以在尾端添加、删除元素,而不需要考虑数组下标的变化。

向量的定义如下:

#include <vector>

std::vector<int> vec; // 定义一个空的整数向量

以上代码中,我们通过 std::vector 类来定义一个空的整数向量。std:: 表示命名空间,vector 是向量的名称,<int> 表示向量中存储的元素类型为整数。

向量的基本操作

向量是 C++ 中常用的容器之一,其提供了一系列的基本操作,以方便程序员对向量进行操作。以下是常见的向量操作:

向量的大小

我们可以使用 size() 函数获取向量的大小(元素数量):

std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整数向量并初始化
std::cout << "向量的大小:" << vec.size() << std::endl; // 输出向量的大小:5

在以上代码中,我们先定义了一个整数向量并进行了初始化,然后使用 size() 函数获取了向量的大小,并输出了结果。

向量的访问

我们可以使用下标 [] 访问向量中的元素。下标从 0 开始,最大值为向量大小减 1。例如,要访问向量中的第一个元素,可以使用 vec[0]

std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整数向量并初始化
std::cout << "向量中的第一个元素:" << vec[0] << std::endl; // 输出向量中的第一个元素:1

在以上代码中,我们定义了一个整数向量并初始化,然后使用下标操作符 [] 访问向量中的第一个元素,并输出了结果。

向量的迭代器

迭代器(iterator)是 C++ 中用于遍历容器的对象。我们可以使用迭代器访问向量中的元素,并依次遍历整个向量。以下是使用迭代器遍历向量的示例:

std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整数向量并初始化

// 使用迭代器遍历向量
for (auto it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}
std::cout << std::endl;

在以上代码中,我们定义了一个整数向量并初始化。然后,使用 begin()end() 函数获取向量的起始迭代器和终止迭代器,并通过循环依次访问向量中的每个元素,并输出了结果。

向量的插入

我们可以使用 push_back() 函数在向量的尾部插入元素。例如,要在一个整数向量中插入一个值为 6 的元素,可以使用 vec.push_back(6)

std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整数向量并初始化

vec.push_back(6); // 在向量的尾部插入一个元素

// 输出插入后的向量
for (auto it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}
std::cout << std::endl;

在以上代码中,我们定义了一个整数向量并初始化,然后使用 push_back() 函数在向量的尾部插入一个值为 6 的元素,并输出了插入后的向量。

向量的删除

我们可以使用 pop_back() 函数在向量的尾部删除一个元素。例如,要在一个整数向量中删除最后一个元素,可以使用 vec.pop_back()

std::vector<int> vec = {1, 2, 3, 4, 5}; // 定义一个整数向量并初始化

vec.pop_back(); // 删除向量的最后一个元素

// 输出删除后的向量
for (auto it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}
std::cout << std::endl;

在以上代码中,我们定义了一个整数向量并初始化,然后使用 pop_back() 函数删除向量的最后一个元素,并输出了删除后的向量。

总结

本篇文章介绍了 C++ STL 中的向量列表及示例,包括向量的定义、基本操作等。向量是 C++ 中常用的数据结构之一,它具有动态调整大小、快速尾部插入和删除等优点,非常适合需要频繁地进行元素添加和删除的场景。对于需要使用向量的程序员来说,本文的内容应该能够提供一些帮助。