더북(TheBook)

unique_ptr에는 배열을 위한 특별한 구현이 있다.* 이 작업은 (delete[]와 함께) 메모리를 적절히 해제할 때 필요하다. 또한, 특수화를 통해 배열처럼 요소에 접근할 수 있는 기능을 제공한다.

unique_ptr<double[]> da{new double[3]};

for (unsigned i = 0 ; i < 3; ++i)
    da[i] = i + 2;

그 대신, 연산자 *는 배열에 사용할 수 없다.

unique_ptr의 중요한 이점은 원시 포인터에 비해 시간과 메모리에 대한 오버헤드가 전혀 없다는 점이다.

Note ≣ 읽을거리

unique_ptr의 고급 기능으로 사용자 정의 Deleter를 제공하는 기능이 있다. 자세한 내용은 [26, 5.2.5f절], [43, 34.3.1절], 또는 온라인 레퍼런스(예를 들어 cppreference.com)를 참조하라.

 

* 특수화는 3.6.1절과 3.6.3절에서 설명할 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.