본문 바로가기

STL - Utilities

[C++11 STL] std::shared_ptr 개요 ※ std::shared_ptr 요약 C++11에 새로 추가된 스마트 포인터인 shared_ptr에 대한 내용이다. 스마트 포인터란, 사용하지 않는 메모리나 사용이 끝난 메모리를 자동으로 해제/관리 해주는 것을 의미하는 것으로써 Java나 C#의 가비지 컬렉터와 비교 했을때 성능의 손해는 거의 없으면서 메모리 관리의 이점을 얻을 수 있으므로 편하고도 안전하다. 스마트 포인터는 메모리 누수 관리에 자신이 없는 초보자들이나 복잡하고 거대한 프로젝트를 진행할때 사용하면 적당할 거 같다. 그렇지만 필자는 스마트 포인터를 거의 사용하지 않는다. 아직은 직접 할당, 해제를 해줘야 안심?이 되기 때문이다. ※ std::shared_ptr 특징 - 레퍼런스(참조) 카운팅을 지원한다. - 명시적인 delete를 해주지 .. 더보기
[C++11 STL] std::tuple 개요 ※ std::tuple 요약 TR1부터 새롭게 추가된 std::tuple은 C++98에서 기본 제공하던 std::pair의 확장 버전으로써, 컴파일 시간에 명시되거나 추론될 수 있는 데이터형 요소들을 가지는 이종 목록(heterogeneous list)이다. TR1인 Visual Studio 2010에서는 10개의 요소를 저장할 수 있고 C++11을 부분 지원하는 Visual Studio 2013부터는 저장 가능한 항목 개수에 제한이 없고 각각의 항목마다 개별 타입으로 지정 가능하다. ※ std::tuple 특징 std::tuple은 주로, 함수에서 2개 이상의 값을 반환해야할 때 사용한다. 기존에는 구조체를 이용하여 2개 이상의 값을 리턴했지만, 단순히 2개 이상의 값을 반환하기 위해 구조체를 만드는 .. 더보기