벡터

벡터는 크기가 변할수 있는 배열이다.

순차 컨테이너이다.

 

배열처럼 메모리에 연속하여 데이터를 할당하므로 인덱스로 접근이 가능하다.

배열과 다르게 크기가 커져 할당된 크기를 넘어서면 재할당하여 크기를 키운다.

 

다른 순차 컨테이너인 덱(deque), 리스트(list)와 비교해 벡터는 인덱스로 바로 접근하는게 빠르다.

벡터의 끝에 요소를 삽입, 삭제하는 것은 빠르지만 중간이나 앞 부분에 요소를 삽입, 삭제하는 것은 효율적이지 않다.

 

멤버함수

C++11에서 추가된 함수는 배경색을 칠했다.

 

생성자 벡터를 생성한다.
파괴자 벡터를 파괴한다.
operator= 객체를 할당한다.

Iterators

begin 첫번째 element를 가리키는 이터레이터를 반환한다.
end 마지막 element를 가리키는 이터레이터를 반환한다.
rbegin 마지막 element를 가리키는 역 이터레이터를 반환한다. 이터레이터를 증가시키면 역방향으로 그 다음 element를 가리킨다.
rend 첫번째 element를 가리키는 역 이터레이터를 반환한다.
cbegin 첫번째 element를 가리키는 const 이터레이터를 반환한다. 가리키는 객체의 값을 수정할 수 없다.
cend 마지막 element를 가리키는 const 이터레이터를 반환한다. 가리키는 객체의 값을 수정할 수 없다.
crbegin 마지막 element를 가리키는 const 역 이터레이터를 반환한다. 가리키는 객체의 값을 수정할 수 없다.
crend 첫번째 element를 가리키는 const 역 이터레이터를 반환한다. 가리키는 객체의 값을 수정할 수 없다.

Capacity

size 벡터의 크기를 반환한다.
max_size 벡터가 가질 수 있는 element의 최대 크기를 반환한다. 시스템이나 여러 요인에 달려있다.
resize 벡터의 크기를 변경한다. 기존보다 작은 값으로 변경하면 나머지 값들은 파괴된다.
capacity 메모리에 할당된 크기를 반환한다. 벡터의 요소 갯수와 할당된 값은 다를 수 있다.
empty 벡터가 비어있는지 확인한다.
reserve 벡터에 n개의 element를 수용할 수 있도록 요청한다.
shrink_to_fit 컨테이너에 속한 element의 수에 따라 재할당 하도록한다. 많이 할당된 경우 줄이기위해 사용한다.

Element access

operator[] element에 접근한다.
at element에 접근한다.
front 맨 앞의 element에 접근한다.
back 맨 뒤의 element에 접근한다.
data 벡터 내부에서 사용하는 array포인터를 반환한다.

Modifiers

assign 벡터에 값을 할당한다. 기존에 값이 있어도 완전 새로 할당된다.
push_back element를 끝에 추가한다.
pop_back 마지막 element를 제거한다.
insert element를 삽입한다. 인자로 iterator도 같이 넘긴다.
erase element를 제거한다.
swap 다른 벡터의 내용물과 자신의 내용물을 서로 바꾼다
clear 내부 element를 모두 제거한다.
emplace element를 생성 후 삽입한다. 인자로 iterator도 함께 넘긴다.
emplace_back element를 생성 후 맨 뒤에 삽입한다.

 

'언어 > C++' 카테고리의 다른 글

[C++/STL] Set  (0) 2020.04.26
[C++/STL] 컨테이너(Containers)  (0) 2020.02.21
[C++/STL] 리스트(List)  (0) 2020.02.20

+ Recent posts