vector<int>&和vector<int>的直接传递
时间: 2024-10-27 18:03:23 浏览: 20
c++中vectorlt;intgt;和vectorlt;int*gt;的用法区别
在C++中,`vector<int>&` 和 `vector<int>` 都是用来表示向量的引用或指针,但它们在传递方式上有所不同。
1. `vector<int>&`: 这是一个引用类型,当你传递 `vector<int>&` 的时候,实际上是将一个向量对象的引用传递给另一个变量。这意味着原始向量的内容会被修改,因为你在操作的是同一个内存地址。例如:
```cpp
void modifyVector(vector<int>& v) {
v.push_back(42);
}
int main() {
vector<int> original;
modifyVector(original); // original 向量也被修改了
return 0;
}
```
2. `vector<int>`: 如果直接传递 `vector<int>` 类型,则复制整个向量对象,新的变量会拥有一个副本,对新变量的操作不会影响原向量。比如:
```cpp
void modifyCopy(vector<int> v) {
v.push_back(42);
}
int main() {
vector<int> original;
modifyCopy(original); // original 向量未被修改
return 0;
}
```
阅读全文