간단히 말하면, new 배치를 사용하면 주어진 변수에 이미 할당된 메모리에 개체를 "구성"할 수 있습니다. 이는 이미 할당된 동일한 메모리를 재할당하지 않고 재사용하는 것이 더 빠르기 때문에 최적화에 유용합니다. 다음과 같이 사용할 수 있습니다 -
new (address) (type) initializer
주어진 유형의 새 객체가 생성되기를 원하는 주소를 지정할 수 있습니다.
예시
#include<iostream> using namespace std; int main() { int a = 5; cout << "a = " << a << endl; cout << "&a = " << &a << endl; // Placement new changes the value of X to 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
새로운 배치를 사용한 후 -
a = 10 m = 0x60ff18 &a = 0x60ff18