C ++中“ placement new”的用法是什么?

简而言之,placement new允许您在已分配给给定变量的内存上“构造”对象。这对于优化很有用,因为它可以更快地不重新分配和重用已经分配给它的相同内存。它可以如下使用-

new (address) (type) initializer

我们可以指定一个地址,以在该地址上构造给定类型的新对象。 

示例

#include<iostream>
using namespace std;
int main() {
   int a = 5;
   cout << "a = " << a << endl;
   cout << "&a = " << &a << endl;

   //新的展示位置将X的值更改为100-
   int *m = new (&a) int(10);

   cout << "\nAfter using placement new:" << endl;
   cout << "a = " << a << endl;
   cout << "m = " << m << endl;
   cout << "&a = " << &a << endl;

   return 0;
}

输出结果

这将给出输出-

a = 5
&a = 0x60ff18

在使用new放置之后-

a = 10
m = 0x60ff18
&a = 0x60ff18