벡터
벡터는 크기가 변할수 있는 배열이다.
순차 컨테이너이다.
배열처럼 메모리에 연속하여 데이터를 할당하므로 인덱스로 접근이 가능하다.
배열과 다르게 크기가 커져 할당된 크기를 넘어서면 재할당하여 크기를 키운다.
다른 순차 컨테이너인 덱(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 |