我想知道向量在C ++中如何工作。当我们添加一个新元素并且向量耗尽空间时,它将分配一个新的内存并将所有先前的元素复制到新位置。
现在,如何定义此行为?
A* a = new A(prev_a);
Run Code Online (Sandbox Code Playgroud)
将在新分配的新位置复制构造。但是对于矢量,我们必须分配多个对象。但是我们不能这样做,因为new数组不能有初始化参数。
所以我想知道,向量如何实现呢?我假设向量首先分配了一个内存,然后在特定位置调用了复制构造函数。怎么做?谢谢
我假设向量首先分配了一个内存,然后在特定位置调用了复制构造函数。
是的,这是两个单独的步骤:
allocator::allocate。