std::vector 与按值传递的动态数组

Fra*_*a_B 5 c++ vector

你好,我从 c 转到 c++,我一直想知道为什么 std::vector 可以按值传递。

我认为按值传递动态分配的数组是不可能的,因为这只会复制指针。

如果向量类内部是相同的指针,那么如何复制向量。它必须以某种方式知道如何将其重建为另一个对象。

jkb*_*jkb 4

std::vector知道动态内存中存储了多少个元素。分配该大小的新缓冲区并将内容复制到该新内存中是一件简单的事情。所有这些都发生在复制构造函数中。