## 深入理解 C++中 std::vector 的引用语义
### 引言
在计算机科学和数学领域,"vector"(向量)这个术语有几种含义:
1. **数学中的向量**:在数学中,向量通常指的是具有大小和方向的量。它可以在二维或三
维空间中表示,并且可以用箭头来形象化表示。向量可以进行加法、减法、数乘等运算,并
且在物理学中用来表示力、速度等概念。
2. **计算机科学中的向量**:在计算机科学中,向量是一个抽象的数据类型,用来表示可以
进行数学运算的有序元素集合。这些元素可以是数字、字符或其他数据类型。
3. **C++ STL 中的向量**:在 C++标准模板库(STL)中,`vector`是一个序列容器,代表一个
动态大小的数组。它能够根据需要自动调整大小,提供随机访问元素的能力,并允许在末尾
快速添加或删除元素。
4. **机器学习中的向量**:在机器学习和数据科学中,"向量"经常用来表示数据点。例如,
一个特征向量可以表示一个物体的属性集合,如在图像识别中,一个图像的特征向量可能包
含颜色、纹理、形状等属性。
5. **物理中的向量**:在物理学中,向量用于描述具有大小和方向的物理量,如力、速度、
加速度等。
每种含义的向量都有其特定的属性和运算规则,但核心概念是它们都表示了一种有序的集合,
可以进行数学运算。在不同的上下文中,向量的具体实现和应用会有所不同。
在 C++程序设计中,`std::vector`是处理动态数组的首选容器。掌握其引用语义对于编写高效、
安全的代码至关重要。
### 什么是 std::vector
- `std::vector`简介
- 与数组相比的优势
### 传递 vector 给函数
- 使用引用避免复制
- 常量引用与非常量引用
#### 示例代码:
```cpp
void printVector(const std::vector<int>& vec) {
for (const auto& elem : vec) {