C | C++

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)하게..

C | C++

auto 키워드

타입 추론(type inference)이란 표현식의 타입을 컴파일러가 스스로 알아내는 기능이다. 타입 추론과 관련된 키워드는 auto 와 decltype 이 있다. 그 중 auto 키워드에 대해 알아보겠다. auto 키워드는 다음과 같은 상황들에 사용한다. 1. 함수의 리턴 타입을 추론한다. 2. 구조적 바인딩에 사용한다. (C++ 17, 타입 지정하면 안됨) 3. 표현식의 타입을 추론한다. 4. 비타입(non-type) 템플릿 매개변수의 타입을 추론하는 데 사용한다. 5. decltype 에서 사용한다. 6. 함수에 대한 또 다른 문법으로 사용한다. 7. 제네릭 람다 표현식에서 사용한다. 변수를 선언할 때 타입 자리에 auto 키워드를 지정하면 그 변수의 타입은 컴파일 시간에 자동으로 결정된다. aut..

C | C++

Rvalue reference 정리한 내용

https://docs.google.com/presentation/d/1IZj8lbcurFcLJ25mHTO1e8hb8vS_vkUKmthI_RX6DNY/edit?usp=sharing

냉국
'C | C++' 카테고리의 글 목록