vector 浅拷贝
时间: 2023-09-30 12:02:57 浏览: 147
在 C++ 中,当你对一个 vector 进行拷贝操作时,默认情况下是进行的浅拷贝。也就是说,拷贝后的 vector 会与原始 vector 共享相同的元素,而不是创建一个新的副本。
这意味着,如果你修改了其中一个 vector 的元素,另一个 vector 也会受到影响。这是因为它们实际上指向相同的内存位置。
例如:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> original = {1, 2, 3};
std::vector<int> copy = original;
copy[0] = 100;
std::cout << "Original vector: ";
for (int num : original) {
std::cout << num << " ";
}
std::cout << "\nCopied vector: ";
for (int num : copy) {
std::cout << num << " ";
}
return 0;
}
```
输出为:
```
Original vector: 100 2 3
Copied vector: 100 2 3
```
如上例所示,修改拷贝后的 vector 的第一个元素也会影响原始 vector。如果你想要创建一个独立于原始 vector 的副本,可以使用深拷贝或者使用其他方法来实现。
阅读全文