【发布时间】:2020-07-15 19:48:21
【问题描述】:
您好,我正在从 c 转到 c++,我一直想知道为什么 std::vector 可以按值传递。
我假设不可能通过值传递动态分配的数组,因为这只会复制指针。
如果向量类内部是相同的指针,那么如何复制向量。它必须以某种方式知道如何将其重构为另一个对象。
【问题讨论】:
-
对于基本的,考虑 copy-construction。任何体面的书或教程都应该提到它。如果你的书没有,那么here's a list of decent books。
-
复制一个类类型的对象会调用它的复制构造函数,而
std::vector的复制构造函数会复制底层数组。