Vector 란?
STL 컨테이너의 하나인 Vector는 동적 배열로 구현한 클래스로써 크기가 동적으로 조절된다. 배열과 비슷하지만 크기를 변경할 수 있고 여러 유용한 멤버 함수를 제공한다. 값의 삽입과 삭제는 맨 뒤 인덱스에서 가능하고, 중간에 값을 삽입 하거나 삭제할 수도 있지만 해당 위치 이후의 모든 요소를 이동시켜야 하므로 비효율적이다.
▶ Vector 사용법
- #include <vector> 헤더파일을 추가한다.
- using namespace std; 를 사용하면 편리하게 사용할 수 있다.
- 선언법은 vector<data type> (변수명) 이다.
▶ Vector 생성자
# 비어있는 vector v 생성
vector<int> v;
# 기본값(0)으로 초기화 된 3개의 원소를 가진 vector v 생성
vector<int> v(3);
# 2로 초기화 된 3개의 원소를 가진 vector v 생성
vector<int> v(3, 2);
# v2에 v의 vector를 복사해서 생성
vector<int> v2(v);
▶ Vector 멤버 함수
# idx 번째 원소를 참조함. v[idx] 보다 속도는 느리지만 범위를 점검하므로 안전함
v.at(idx);
# vector의 모든 원소를 제거하지만 메모리는 남아있는 형태 (size만 줄고 capacity는 그대로)
v.clear();
# vector의 첫번째 원소
v.front();
# vector의 마지막 원소
v.back();
# 마지막 원소 뒤에 전달받은 인자를 삽입
v.push_back(value);
# 마지막 원소를 제거
v.pop_back();
# 첫번째 원소를 가리킴(iterator와 사용)
v.begin();
# 마지막의 다음 인덱스를 가리킴(iterator와 사용)
v.end();
# vector의 크기(개수)를 반환함
v.size();
# 비어있으면 true, 아니면 false를 반환함
v.empty();
# 인자로 받은 값들로 벡터를 채우거나 재할당함
v.assign(5, 2);
v.assign({10, 20, 30, 40, 50});
# vector의 크기를 변경하며, 요소의 개수를 조절함
# 크기를 늘리면 늘어난 요소들은 0으로 초기화되고, 줄일 경우 끝 요소부터 삭제함
v.resize(10);
# vector가 저장할 요소들을 위한 메모리 공간을 미리 할당함
# v의 크기는 3이고, capacity는 10
vector<int> v = {1, 2, 3};
v.reverse(10);
# iter 가 가리키는 원소를 제거 ( 1번 인덱스의 값 제거 )
v.erase(v.begin() + 1);
# 지정한 범위의 값 제거 ( 1 ~ 3번 인덱스 값 제거 )
v.erase(v.begin() + 1, v.begin() + 4);
# 특정 값과 일치하는 모든 요소 지우기 ( 값이 2인 모든 요소 제거 )
v.erase(remove(v.begin(), v.end(), 2), v.end());
'C++' 카테고리의 다른 글
[MFC] GDI+ 사용하기 (2) | 2023.12.05 |
---|---|
[C++] 스레드 개념과 예시 (0) | 2023.11.28 |
[C++] 힙 개념과 구현 방법 (0) | 2023.11.22 |
댓글