반응형
Vector container란?
vector container는 자동으로 메모리가 할당되는 배열으로, std::array의 고정 배열 기능을 더 안전하고 유용한 형태로 제공한다.
즉, new/delete를 사용하여 메모리를 동적으로 할당/해제 하지 않고도 런타임에 길이가 설정된 배열을 만들 수 있다.
vector를 사용하기 위해서는 <vector> 헤더파일을 추가해야 합니다.
std::vector의 변수 선언 및 초기화 방법은 아래와 같다.
#include <vector>
// 비어있는 vector 생성
std::vector<int> array1;
// 1, 2, 3, 4, 5 아이템을 가지는 vector 생성
std::vector<int> array2 = {1, 2, 3, 4, 5};
std::vector<int> array3{1, 2, 3, 4, 5};
// 기본값으로 초기화된 원소 5개를 가지는 vector 생성
std::vector<int> array4(5);
// -1로 초기화된 5개의 원소를 가지는 vector 생성
std::vector<int> array5(5, -1);
// array5와 동일한 item을 가지는 vector 생성
std::vector<int> array6(array5);
Vector container의 멤버 함수
- iterator 관련 멤버 함수
함수명 | 동작 |
begin() | 배열의 첫 번째 원소의 iterator를 리턴한다. |
end() | 배열의 맨 마지막 다음 원소의 iterator를 리턴한다. |
rbegin() | 배열을 거꾸로 했을 때 첫 번째 원소의 iterator를 리턴한다. |
rend() | 배열을 거꾸로 했을 때 맨 마지막 다음 원소의 iterator를 리턴한다. |
cbegin() | 배열의 첫 번째 원소의 iterator를 const로 리턴한다. |
cend() | 배열의 맨 마지막 다음 원소의 iterator를 const로 리턴한다. |
crbegin() | 배열을 거꾸로 했을 때 첫 번째 원소의 iterator를 const로 리턴한다. |
crend() | 배열을 거꾸로 했을 때 맨 마지막 다음 원소의 iterator를 const로 리턴한다. |
- Capacity 관련 멤버 함수
함수명 | 동작 |
size() | 배열의 size를 리턴한다. |
max_size() | 배열의 최대 사이즈를 리턴한다.(size 함수와 동일한 동작. 왜 이 함수가 있는지 잘 모르겠다.) |
empty() | 배열이 비어있는지 확인하는 함수 (비어있을 경우 true, 아닐 경우 false 리턴) |
capacity() | 할당 된 storage capacity size 리턴 |
reserve() | capacity 변경 요청 |
- element access 관련 멤버 함수
함수명 | 동작 |
operator[N] | N번째 인자를 리턴 |
at(N) | N번째 인자를 리턴 |
front() | 배열의 맨 앞 원소를 리턴 |
back() | 배열의 맨 뒤 원소를 리턴 |
data() | 배열을 포인터 타입으로 리턴. (배열의 첫 번째 주소를 리턴) |
- motifier 멤버 함수
함수명 | 동작 |
assign() | 벡터에 새로운 내용을 집어 넣는다.벡터 객체에 이전에 있었던 원소들은 모두 삭제하고, 인자로 받은 새로운 내용을 집어 넣는다. |
push_back() | 벡터의 마지막 원소 뒤에 새로운 원소를 추가 |
pop_back() | 벡터의 마지막 원소를 제거 |
insert() | 벡터의 특정 위치에 원소를 추가 |
erase() | 벡터의 특정 순서의 인자 또는 특정 범위의 모든 인자를 제거 |
swap() | 대상 벡터 내용과 자신의 벡터 내용을 교체 |
clear() | 벡터의 모든 내용을 삭제 |
'Development. > C++' 카테고리의 다른 글
[C++] List container (std::list) 개념 및 사용법 정리 (0) | 2020.09.03 |
---|---|
[C++] array container(std::array) 개념 및 사용법 정리 (0) | 2020.07.26 |
[C++] STL(Standard Template Library) 이란? (0) | 2020.07.26 |