c++ vector<int> 如何复制一份
时间: 2024-10-27 16:04:23 浏览: 33
在 C++ 中,如果你想复制 `vector<int>` 类型的一个实例,可以使用多种方法。以下是其中的一些常见方法:
1. **深拷贝**(Deep Copy):如果你使用的是标准库提供的 vector,你可以直接创建一个新的 vector 并将原始 vector 的元素逐个添加进去。例如:
```cpp
std::vector<int> original(5, 0); // 原始 vector
std::vector<int> copied(original.begin(), original.end()); // 深拷贝
```
2. **赋值**(Assignment):如果不需要保留原 vector 的内容,可以直接用赋值操作符 `=` 进行复制:
```cpp
std::vector<int> original(5, 0);
std::vector<int> copied;
copied = original; // 赋值复制
```
3. **使用 reserve 和 push_back**:这种方式效率较低,但如果不知道原始 vector 的大小,可以用这种方式避免多次 resize 操作:
```cpp
std::vector<int> original(5, 0);
std::vector<int> copied;
copied.reserve(original.size());
for (const auto& value : original) {
copied.push_back(value);
}
```
4. **std::vector 的 copy 或 emplace_back**:`copy` 函数适用于已知大小的情况,`emplace_back` 可以在不增加容量的情况下添加元素:
```cpp
std::vector<int> original(5, 0);
std::vector<int> copied(original.size());
std::copy(original.begin(), original.end(), copied.begin());
```
阅读全文