📅  最后修改于: 2023-12-03 14:39:50.494000             🧑  作者: Mango
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++ 中常用的数据结构之一,它具有动态调整大小、快速尾部插入和删除等优点,非常适合需要频繁地进行元素添加和删除的场景。对于需要使用向量的程序员来说,本文的内容应该能够提供一些帮助。