首页 > 解决方案 > std::vector 与按值传递的动态数组

问题描述

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

我假设不可能通过值传递动态分配的数组,因为那只会复制指针。

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

标签: c++vector

解决方案


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


推荐阅读