c++如何拷贝一个存放自定义类型的vector
时间: 2023-08-14 16:03:40 浏览: 110
你可以使用C++的标准库函数`std::copy`来拷贝一个存放自定义类型的`vector`。下面是一个示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
// 自定义类型
struct MyType {
int data;
// 其他成员变量和函数...
};
int main() {
std::vector<MyType> sourceVec = { {1}, {2}, {3}, {4}, {5} };
// 创建目标vector,大小和源vector相同
std::vector<MyType> destVec(sourceVec.size());
// 使用std::copy进行拷贝
std::copy(sourceVec.begin(), sourceVec.end(), destVec.begin());
// 打印拷贝后的目标vector
for (const auto& item : destVec) {
std::cout << item.data << " ";
}
std::cout << std::endl;
return 0;
}
```
这个示例创建了一个存放自定义类型`MyType`的源`vector`,然后使用`std::copy`函数将源`vector`中的元素拷贝到目标`vector`中。最后,打印出拷贝后的目标`vector`的元素。
请注意,拷贝操作会调用自定义类型的拷贝构造函数。如果自定义类型中有指针或资源管理的成员变量,你可能需要实现自定义类型的拷贝构造函数来确保正确的拷贝行为。
阅读全文