我们可以使用placement new在预分配的内存中创建一个对象。在预先分配的内存中创建对象
让我们看看下面的例子:
char *buf = new char[1000]; //pre-allocated buffer
string *p = new (buf) MyObject(); //placement new
string *q = new (buf) MyObject(); //placement new
我已经在预分配的缓冲区创建了两个对象。这两个对象是在缓冲区内随机创建的还是在连续的内存块中创建的?如果我们继续在缓冲区中创建更多的对象并希望它们存储在连续的内存块中,我们应该怎么做?首先在缓冲区中创建一个数组,然后在数组的元素插槽中创建每个对象?
“如果我们在缓冲区中创建更多的对象,并希望它们存储在连续的内存块中,我们该怎么办?”使用'std :: vector',它是一个连续存储的动态数组。 – GManNickG