상세 컨텐츠

본문 제목

[C++ STL] std::vector 주요 멤버 함수 목록

Study/Language

by Arq.Dev5igner 2022. 2. 25. 17:15

본문

※ std::vector 요약
많이 사용하는 시퀀스 컨테이너 std::vector에 대한 설명이다.
std::vector는 동일 타입의 자료 집합으로써 흔히 배열에 비유를 많이 한다.
또한 템플릿 기반이므로 임의 타입을 요소로 가질 수 있으며, 요소 개수에 따라 동적으로 메모리를 관리한다.
다른 컨테이너들에 비해 구조가 단순하고 사용 방법이 쉬우며 속도도 빠른편이다, 또 실용적이라 활용 빈도가 높다.
 
※ std::vector의 특징
- 배열을 대체할 수 있다.
- 동일 타입의 자료 집합이며 각 요소는 연속된 위치에 배치된다.
- 연속된 위치에 배치되므로 임의 위치를 빠른 속도로 액세스 할 수 있다.
- 최상위 레벨의 임의 접근 반복자를 제공하므로 STL의 거의 모든 알고리즘 사용 가능하다.
- 삽입, 삭제 속도가 느리다. 중간 삽입, 삭제는 더 느리다.
 
※ std::vector와 배열
- 배열의 크기는 고정이지만 std::vector는 요소 개수에 따라 자동(동적)으로 늘어난다.
- 배열과 std::vector 모두 사용 방법이 쉽다.
- 배열과 std::vector 모두 데이터를 연속된 위치에 순차적으로 저장한다.
- 연속된 위치에 순차적으로 저장하므로 랜덤 엑세스가 가능하다.
- 속도는 보통 배열이 std::vector보다 빠르다.
 
※ std::vector를 사용해야 하는 경우

- 저장할 데이터의 개수가 가변적일때
- 중간에 데이터 삽입, 삭제가 적거나 없을때
- 저장된 요소를 자주 검색하지 않을때
- 랜덤 엑세스를 자주 할때

std::vector 주요 멤버 함수 목록

 분 류  멤버 함수  설 명
Iterators begin  첫 번째 원소를 가리키는 반복자를 리턴한다.
cbegin  첫 번째 원소를 가리키는 상수 반복자를 리턴한다.
end  마지막 원소를 가리키는 반복자를 리턴한다.
cend  마지막 원소를 가리키는 상수 반복자를 리턴한다.
rbegin  역 순차열의 첫 번째 원소를 가리키는 반복자를 리턴한다.
crbegin  역 순차열의 첫 번째 원소를 가리키는 상수 반복자를 리턴한다.
rend  역 순차열의 마지막 원소를 가리키는 반복자를 리턴한다.
crend  역 순차열의 마지막 원소를 가리키는 상수 반복자를 리턴한다.
Element access at  n번째 원소를 참조할 때 사용하며 범위 점검을 하므로 []보다 느리다.
operator[]  n번째 원소를 참조할 때 사용하며 범위 점검을 안하므로 at보다 빠르다.
front  첫 번째 원소의 참조를 리턴한다.
back  마지막 원소의 참조를 리턴한다.
Capacity empty  원소 존재 유무를 체크한다. 아무것도 없으면 true, 있으면 false를 리턴한다.
size  원소의 개수를 리턴한다.
max_size  담을 수 있는 원소의 최대 개수를 리턴한다.
resize  vector의 크기를 변경하고 default 값이나 임의 값으로 초기화한다.
capacity  vector에 할당된 메모리의 크기를 리턴한다.
reserve  지정한 크기 만큼의 메모리를 미리 할당한다.
shrink_to_fit  사용되지 않는 capacity size를 제거한다. 즉 size() == capacity()가 된다.
Modifiers clear  vector의 모든 원소를 제거한다.
assign  기존 원소들은 모두 제거 후, 임의 값으로 n개의 원소를 할당한다.
insert  임의 위치에 임의 값을 삽입한다.
emplace  원소 삽입시 컨테이너 내부에서 생성 후 임의 위치에 임의 값을 삽입한다.
emplace_hint  제공 안 함
erase  임의 위치의 원소나 지정 범위의 원소를 삭제한다.
push_front  제공 안 함
emplace_front  제공 안 함
pop_front  제공 안 함
push_back  vector의 끝에 원소를 추가한다.
emplace_back  원소 삽입시 컨테이너 내부에서 생성 후 컨테이너의 끝에 원소를 추가한다.
pop_back  vector의 마지막 원소를 제거한다.
swap  v1.swap( v2 )일때 v1과 v2를 swap한다.
List operations merge  제공 안 함
splice  제공 안 함
remove  제공 안 함
remove_if  제공 안 함
reverse  제공 안 함
unique  제공 안 함
sort  제공 안 함
Lookup count  제공 안 함
find  제공 안 함
lower_bound  제공 안 함
upper_bound  제공 안 함
equal_range  제공 안 함
Observers key_comp  제공 안 함
value_comp  제공 안 함
hash_function  제공 안 함
key_eq  제공 안 함
Allocator get_allocator  vector의 allocator 객체를 반환한다.

'Study > Language' 카테고리의 다른 글

[C++ STL] list 개요  (0) 2022.02.25
[C++ STL] deque  (0) 2022.02.25
[C++ STL] map  (0) 2022.02.25
[C#] Collection과 Interface  (0) 2021.11.15
[C#] 열거자 (Enumerator) / Collection과 인덱서(indexer)  (0) 2021.11.15

관련글 더보기