3.1 배열과 vector
배열은 같은 종류의 자료를 연속적인 메모리에 보관하는 자료구조예요. C언어와 C++언어에서 제공하는 배열 형식은 개발 단계에서 원소 형식과 원소의 개수를 결정하는 정적인 구조를 갖고 있죠. 이러한 배열은 개발 도중에 원소의 개수를 변경할 수 없는 한계를 갖고 있어요.
하지만 C언어와 C++언어에서도 동적으로 메모리를 할당하는 함수와 연산을 제공하여 프로그램 동작 시에 연속적인 메모리를 할당하여 자료를 관리할 수 있어요. 특히 할당한 메모리에 보관한 자료의 개수를 기억해 두었다가 꽉 차면 메모리를 재할당하여 개발자가 배열의 크기를 신경쓰지 않게 구현할 수도 있어요. STL에서 제공하는 vector는 이러한 원리로 동작하게 만든 템플릿 클래스예요.
여기에서는 STL에서 제공하는 vector를 사용하는 방법을 먼저 익히고 난 후에 비슷하게 직접 만들어 볼 거예요.
STL에서 제공하는 vector를 사용하는 방법은 목적에 따라 다양합니다. 그 중에서 가장 많이 사용하는 방법은 순차적으로 보관하는 방법과 특정 키 순서대로 보관하는 방법, 미리 최대 개수만큼의 디폴트 값을 보관해 두었다가 인덱스 연산을 사용하여 실제 자료로 변경하는 방법이 있어요.
여기에서는 이 세가지 방법으로 vector를 사용하는 것을 다루고 난 후에 STL의 vector와 비슷하게 동작하는 vector를 만드는 실습을 해 볼 거예요.
특히 템플릿 클래스 이름도 STL에서 제공하는 vector와 같은 이름으로 정할 것이기 때문에 사용하는 코드에서 포함하는 헤더 파일과 using 문만 변경하더라도 동작하게 구현할 거예요.
'언어 자료구조 알고리즘 > [C++]디딤돌 자료구조와 알고리즘' 카테고리의 다른 글
3.2 연결리스트와 list [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
---|---|
3.1.5 vector를 인덱스 연산으로 사용 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.1.4 vector에 특정 키 순으로 보관 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.1.2 vector에 순차적으로 보관 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3.1.1 이 책에서 공통으로 사용하는 것들 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
3. 선형 자료구조 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
2.4 삽입 정렬(Insertion Sort) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
2.3 선택 정렬(Selection Sort) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
2.2 거품 정렬 (Bubble Sort) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
2.1 순차 정렬(Sequential Sort) [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |