[STL] Vector

프로그래밍 2014. 3. 5. 01:43

Vector

Vector 들은 연속된 컨테이너의 한 종류입니다. 일반 배열들과 같이 vector 컨테이너들은 인접한 저장 위치에 저장되어 있습니다. 따라서 요소들을 단지 반복자(iterator)를 사용하지 않고도 특정 offset(포인터)로 접근이 가능합니다.

 

일반적으로 vector의 저장용량은 필요에 따라 확장되고, 용량은 자동적으로 계산됩니다.

 

Vector의 가장큰 장점으로는 특정 인덱스로 각각의 요소에 접근 가능 함에 있습니다. 또한 끝에서 요소를 추가하거나 제

거함에 편리합니다. 배열과 비교해서 vector는 거의 같은 기능을 제공합니다. 추가로 vector는 쉽게 크기를 바꿀수 있는

기능도 가지고 있습니다. 일반적으로 용량이 자동적으로 다루어지기 때문에 배열과 비교하면 vector는  더욱 많은 메모리

용량을 사용합니다. 그리고 list보다 일관된 iterator reference를 적게 가지고 있습니다.

 

내부적으로 vector는 내부에 저장된 요소들이 얼마나 있는지(개수)를 나타내는 크기를 가지고 있습니다.(size) vector의

경우에는 할당받은 용량이 모두 사용되지 않을수도 있습니다. vector의 경우 매번 할당받을 경우 부하가 걸리기 때문에

미리 할당을 해두고 용량을 사용하는게 좋습니다.

 

Template <class T, class Allocator = allocator<T>> class vector

위의 템플릿 파라메터들은 다음과 같은 뜻을 갖습니다.

T : 요소 타입

Allocator : 용량 할당 모델을 정의하기 위해 사용된 allocator 객체의 기본 타입, 기본적으로 타입 T를 위한 allocator클

                래스 템플릿은 단순한 메모리 할당 모델을 정의하고 독립적인 값을 위해 사용됩니다.

 

vector 멤버함수를 위한 참조에서의 같은 이름들은 템플릿 파라메터들로 추측할수 있습니다.

 

Member function

 

Iterator

 

Capacity

 

Element Access

 

Modifiers

 

Allocator

 

Member types

Of template <class T, class Allocator = allocator<T>> class vector

 

'프로그래밍' 카테고리의 다른 글

멀티 스레드  (0) 2014.12.13
파이썬 argparse  (0) 2014.11.08
[STL] List  (0) 2014.03.06
PHP document  (0) 2014.02.23
APM으로 서버 구동하기(설치) - AutoSet  (0) 2014.02.23