Operator new와 Allocator에 대한 이해
메모리 할당과 생성자 호출의 분리 C++에서 객체를 생성할 때 new를 쓸 수 있다. 그러나 new를 사용할 경우 os로부터 메모리를 얻어옴과 동시에 반드시 해당 메모리에 객체를 생성하고 초기화하게 된다. 하지만 컨테이너를 구현하기 위해서는 메모리를 얻어오는 기능과 객체를 생성하는 기능을 분리할 필요가 있다. 예를 들어 vector를 살펴보자. vector의 size는 실제 생성된 객체의 수를 나타내고, capacity는 os로부터 얻어온 메모리 공간의 수를 나타낸다. 그런데, new를 사용할 경우 os로부터 객체를 생성하지 않고 메모리만 얻어올 수 있는 방법이 없다. 그래서 capacity라는 개념도 존재할 수 없게 된다. operator new와 placement new 메모리 할당과, 객체의 생성을..