[C++ STL] Vector
2021. 4. 9. 21:25
1. Vector ?
- 원소 자체를 보관하는 sequence container(vector, list, deque 포함)
- index로 접근할 수 있는 원소의 sequence
- 동적으로 원소 추가 가능, 크기가 가변적인 배열
- 메모리 heap에 생성되며 동적할당
2. 사용법
vector 생성자
# inlcude <vector>
vector<int> v;
vector<int> v = { 'a', 'b', 'c', 'd' };
vector<int> v(7); // 7개의 원소 0으로 초기화
vector<int> v(7, 3); // 7개의 원소 3으로 초기화
vector<int> v[7]; // 크기 7인 벡터 배열 생성
vector<int> v2(v); // v 복사하여 벡터 v2 생성
vector 멤버 함수
int x;
v.front(); // 첫 번째 요소
v.back(); // 마지막 요소
v[3]; // 3번째 요소
v.begin(); // 첫 번째 요소의 위치 (첫 번째 요소를 가리키는 iterator 반환)
v.end(); // 마지막 요소 다음의 위치
v.size(); // vector의 원소 갯수
v.capacity(); // vector의 물리적 크기. 메모리가 할당되어 있는 공간의 용량
v.empty(); // vector 비어있으면 true
v.assign(3, x); // 3개의 x로 초기화
v.assign(v2.begin(), v2.end()); // v2 복사하여 v에 할당
v.push_back(x); // 마지막 위치에 x 추가
v.insert(4, x); // index 4 위치에 x 추가
v.insert(4, 3, x); // index 4 위치에 3개의 x 추가. 다음 요소 뒤로 밀림
v.pop_back(); // 마지막 넣은 값 제거
v.erase(v.begin()+3); // index 3 위치의 값 제거
v.erase(v.begin()+1, v.begin()+5); // index 1~5 위치의 값 제거
v.clear(); // 모든 값 제거
Iterator
vector<int> ::iterator it;
// vector의 순방향 - vector에 존재하는 모든 요소 출력
for (it = v.begin(); it != v.end(); it++)
printf("%d\n", *it);
3. 2차원 vector
vector<vector<int>> v;
vector<vector<int>> v(3, vector<int>(2)); // vector<int>(2) 3개 가지는 vector 생성
vector<vector<int>> v(3, vector<int>(2, 1)); // 마찬가지로 3행 2열 vector 생성 후 1 값으로 초기화
v[2].insert(v[2].begin()+2, 3);
v[0].erase(v[0].begin()+1);
'C++' 카테고리의 다른 글
[C++ STL] List (0) | 2021.04.13 |
---|---|
[C++] 표준 템플릿 라이브러리(STL: Standard Template Library) (0) | 2021.04.13 |
[C++ STL] find (0) | 2021.04.10 |
[C++ STL] Set (0) | 2021.04.10 |
[C++ STL] Stack (0) | 2021.04.09 |