C++ STL 中 vector::operator= 和 vector::operator[ ]

13 May 2025 | 5 分钟阅读

在本文中,我们将讨论 C++ 中的 Vector::operator=Vector::operator[]。但在讨论这些向量之前,我们必须了解 C++ STL。

什么是“C++ STL”?

“C++ STL” 的缩写代表 “C++ 标准模板库”。它是一个模板类集合,用于为 C++ 提供典型的各种数据结构和操作,例如列表、栈、元素数组等,以及操作算法。ISO C++ 标准定义了一个标准库 (STL),它是 C++ 标准库不可或缺的一部分。

Vector::operator= and vector::operator[ ] in C++ STL

C++ STL 的组件

C++ STL 的主要组件如下:

  • 数据结构 称为容器,已用于保存特定类型的对象。向量、列表、集合、映射、队列和栈是其中的几个示例。
  • 算法: STL 提供了大量的算法,这些算法与序列或容器中的项目一起工作。排序、查找、修改和对集合执行操作是这些算法的一些示例。
  • 迭代器: 无论容器类型如何,迭代器都用于遍历容器的元素,提供不间断的机制来访问项目。
  • 可以像函数一样调用的对象被称为函数对象或函数。它们经常被用作参数来改变事物的算法工作方式。
  • C++ STL 旨在易于操作、高效且灵活。通过利用模板,它通过允许算法和数据结构在任何类型的数据上运行来促进通用编程,只要满足一些条件(例如,信息类型允许特定操作)。鉴于此,STL 在不同的使用场景中具有极高的多功能性和可重用性。
  • 通过利用模板,它通过允许算法和数据结构在任何类型的数据上运行来促进通用编程,只要满足一些条件(例如,信息类型允许特定操作)。鉴于此,STL 在不同的使用场景中具有极高的多功能性和可重用性。

“C++ STL 中的 Vector::operator=” 简介

在 C++ STL(标准模板库)中,Vector::operator= 指的是 std::vector 类的赋值运算符。此运算符允许我们将一个向量赋值给另一个向量,并将元素从源向量复制到目标向量。

语法

语法通常如下所示:

这里,T 表示存储在向量中的元素类型。当我们使用此赋值运算符时,它会将另一个向量的所有元素复制到赋值号左侧的向量中。赋值完成后,两个向量将包含相同的元素。赋值运算符返回对已修改向量的引用,这允许我们链式赋值或在更大的表达式中使用赋值。

示例

让我们举一个例子来说明 C++ 中的 Vector::operator=

输出

1 2 3 4 5

上述代码的解释

该程序通过添加必要的头文件 <iostream> 用于输入和输出操作以及 <vector> 来使用 C++ 标准模板库 (STL) 向量。在 main() 函数内部:声明并初始化了一个名为 source 的 std::vector<int> 为 {1, 2, 3, 4, 5}。

另一个空的 std::vector<int> 对象被声明。赋值运算符 = 用于将 source 向量的元素复制到 destination 向量。它有效地创建了 source 向量的副本并将其设置为目标。for 循环 用于迭代目标向量的每个元素,并将它们以空格分隔的形式打印到标准输出。打印一个换行符以移动到下一行。最后,main() 函数返回 0,表示成功执行。

“C++ STL 中的 vector::operator[ ]” 简介

在 C++ STL(标准模板库)中,vector::operator[] 指的是 std::vector 类的下标运算符。此运算符允许根据索引访问向量的元素。

语法

语法通常如下所示:

这里,T 表示存储在向量中的元素类型,size_type 是一个无符号整型,用于表示大小和索引。指针运算符允许像访问数组一样访问向量的元素。请记住,C++ 中的索引是基于零的,这意味着第一个元素可以在索引 0 处访问,第二个元素在索引 1 处访问,依此类推。

示例

让我们举一个例子来说明 C++ 中的 Vector::operator[]

输出

Element at index 0: 10
Element at index 2: 30
Element at index 3 after modification: 99

上述代码的解释

  • 在此示例中,包含用于输入/输出操作的 <iostream> 头文件和用于向量使用的 <vector> 头文件。

main() 函数中

  • 我们声明并建立了一个名为 myVector 的整数向量,其值为 {10, 20, 30, 40, 50}。
  • 我们使用下标 运算符 [] 访问向量项。因此,我们可以根据索引访问项。打印索引 0 和索引 2 处的项。
  • 我们使用下标运算符更改向量元素。在索引 3 处,我们将值修改为 99。
  • 在索引 3 处,我们发布更新后的值。
  • 最后,我们返回 0 表示程序已成功完成。