std::向量与传递值的动态数组

std::vector vs dynamic array passing by value

本文关键字:动态 数组 向量 std      更新时间:2023-10-16

你好,我正在从c混合到c++,我一直在想为什么std::vector可以通过值传递。

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

若一个向量类的内部是同一个指针,那个么向量怎么可能被复制呢。它必须知道如何将它重建成另一个物体。

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