C++ vector 2

[ C++ ] 09. std::vector의 capacity 및 stack 동작

std::vector의 capacity 및 stack 동작 이전 포스트에서 std::vector가 동적 배열이라는 것을 이야기했다. std::vector는 가장 유용하게 많이 사용되므로 다른 속성과 기능에 대해서 좀 더 이야기해보자. Length vs. Capacity int* array = new int[10] { 1, 2, 3, 4, 5 }; 위 예제 코드는 요소 5개만 할당하였어도 배열의 길이는 10이라고 말할 수 있다. 초기화한 요소만 사용하고, 사용하지 않는 요소들을 미래에 확장하기 위해 남겨두기 위해서는 어떻게 해야 할까? 위 예제에서는 할당된 요소 수에서 "사용하는" 요소 수를 별도로 기억해야 한다. int* array = new int[10] { 1, 2, 3, 4, 5 }; // 미래에 ..

[ C++ ] 05. std::vector

std::vector 이전 포스트에서 std::array를 소개했다. std::array는 C++의 내장 고정 배열(fixed array) 기능을 더 안전하고 유용한 형태로 제공한다. 마찬가지로 C++ 표준 라이브러리에는 동적 배열(dynamic array) 작업을 더 안전하고 쉽게 해주는 std::vector를 제공한다. An introduction to std::vector C++ 03에서 소개된 std::vector는 자체 메모리 관리를 처리하는 동적 배열 기능을 제공한다. 즉, new와 delete를 사용하여 메모리를 동적으로 할당∙해제하지 않고도 런타임에 길이가 설정된 배열을 만들 수 있다∙ std :: vector는 헤더에 정의되어 있다. std::vector 변수 선언은 쉽다. #includ..