简而言之,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