【发布时间】:2012-07-06 02:18:45
【问题描述】:
我想知道是否复制向量我正在复制向量及其值(而这不适用于数组,并且深度复制需要循环或 memcpy)。
你能提示解释吗?
问候
【问题讨论】:
-
不要将
memcpy用于vector。 vector 中包含的对象可能不是 POD,它们可能是具有虚函数的类。使用std::copy或简单的vector<T>对vector<T>赋值。 -
“深”与“浅”的区别在默认为值语义并且不会试图隐藏它使用指针这一事实的语言中没有多大意义(因此指针是具有自己值的对象,与它们引用的对象不同)。复制总是按价值的,这是否构成“深度”复制与“浅”复制取决于您的定义。
标签: c++ vector copy std deep-copy