STL

C | C++

C++ unique_ptr 스마트 포인터에 대한 매우 자세한 설명

C++ unique_ptr 스마트 포인터의 개념 C++ 표준에서는 unique_ptr, shared_ptr, weak_ptr의 3종류의 스마트 포인터를 제공하는데, 이번 포스팅에서는 unique_ptr 스마트 포인터의 특징과 사용법에 대해 설명한다. unique_ptr 포인터는 스마트 포인터의 일종으로 "적절한 타이밍에 자동으로 힙 메모리 공간을 해제"하는 기능도 있다. shared_ptr 포인터와의 가장 큰 차이점은 unique_ptr 포인터가 가리키는 힙 메모리를 다른 unique_ptr과 공유할 수 없다는 것이다. 이것은 각 unique_ptr 포인터가 가리키는 힙 메모리 공간의 참조 횟수가 1일 수 있음을 의미한다. unique_ptr 포인터가 가리키는 힙 메모리 공간의 소유권을 포기하면 공간이 ..

C | C++

C++ Vector reserve( )와 resize( )의 차이

C++ Vector reserve( )와 resize( )의 차이 둘의 차이는 한마디로 end( )의 위치가 다르다. resize( )를 하게 되면 그만큼의 생성자(constructor)가 실행된다. 이 개념이 왜 중요하냐면, size와 capacity 때문이다. 간단히 설명하자면 메모리에 이미 할당되어 있는 vector의 크기가 capacity이고 이 안에 원소의 수가 size이다. size가 capacity를 넘어가려고 하면 메모리의 더 큰 공간에 새로운 capacity를 만들고 vector를 이동하는 식으로 구현이 되어 있다. 맨처음 예시처럼 vector를 선언만 하는 경우 begin( )과 end( )가 같고 size와 capacity는 모두 0이다. 만약에 이 vector를 resize(5)하게..

냉국
'STL' 태그의 글 목록