1. vector가 무엇인가요?
: 자동으로 메모리가 할당되는 배열
2. vector의 사용법
- #include <vector> 헤더파일 추가하기
- 비어있는 int형 vector v 생성하기 : vector <int> v;
- 기본값(0)으로 설정된 5개의 원소를 가지는 vector v 생성하기 : vector<int> v(5);
- 2로 초기화 된 5개의 원소를 가지는 vector v 생성하기 : vector <int> v(5,2);
- v1 벡터를 복사한 v2 vector 생성하기 : vector<int> v2(v1);
3. vector의 멤버함수
- 2의 값으로 5개의 원소 할당 : v.assign(5,2);
- idx번째 원소를 참조 : v.at(idx);
- idx번째 원소를 참조, 범위를 점검하지 않아 속도가 빠름 : v[idx];
- 첫번째 원소를 참조 : v.front();
- 마지막 원소를 참조 : v.back();
- 모든 원소를 제거, size만 줄어들고 메모리 capacity는 그대로 남아있음 : v.clear();
- 마지막 원소 뒤에 원소 7을 삽입 : v.push_back(7);
- 첫번째원소를 가르킴 : v.begin();
- 마지막의 다음을 가르킴 : v.end();
- 거꾸로 해서 첫번째 원소를 가르킴 : v.rbegin();
- 거꾸로 해서 마지막의 다음을 가리킴 : v.rend();
- n개의 원소를 저장할 위치를 예약 : b.reserve(n);
- 크기를 n으로 변경하고, 더 커졌을 경우 default = 0으로 초기화 : v.resize(n);
- 크기를 n으로 변경하고, 더 커졌을 경우 defualt = 3으로 초기화 : v.resize(n,3);
- 원소의 개수를 리턴 : v.size();
- 할당된 공간의 크기를 리턴 : v.capacity();
- v1과 v2의 원소와 capacity를 swap : v2.swap(v1);
- 2번째 위치에 3개의 4를 삽입 : v.insert(2,3,4);
- 2번째 위치에 3을 삽입 : v.insert(2,3);
- idx 위치의 인자를 삭제, size만 줄어들고 capacity는 그대로 : v.erase(idx);
- vector가 비었으면(size=0) true를 반환 : v.empty();
> size와 capacity는 다르다. 어떤게?
더보기
![](https://blog.kakaocdn.net/dn/SpJ0N/btqWjpP1Z9j/N6SYUT0SRBDawcfR96WUy1/img.jpg)
출처 https://blockdmask.tistory.com/70
v.size()는 할당된 메모리 안에 들어있는 원소의 갯수를 리턴하고,
v.capacity()는 할당된 공간의 크기를 리턴한다.
![](https://blog.kakaocdn.net/dn/SpJ0N/btqWjpP1Z9j/N6SYUT0SRBDawcfR96WUy1/img.jpg)
[C++ STL] 2차원 vector 선언 및 사용법
※ 이 포스팅은 기본적으로 vector에 대한 개념을 알고 있다는 전제하에 작성. 우선 2차원 vector의 선언에 앞서 일반적인 vector 선언을 살펴보면, 1 2 vector v; v.pushback(7); 위와 같은 형식으로 특정한
leeeegun.tistory.com
'Langauge > C++' 카테고리의 다른 글
[열혈 C++ 프로그래밍] Chapter05(복사 생성자) 정리 및 문제 해결 (0) | 2021.02.16 |
---|---|
[열혈 C++ 프로그래밍] Chapter04(클래스의 완성) 정리 및 문제 해결 #2 (0) | 2021.02.14 |
[열혈 C++ 프로그래밍] Chapter04(클래스의 완성) 정리 및 문제 해결 #1 (0) | 2021.02.13 |
[열혈 C++ 프로그래밍] Chapter03 - 클래스의 기본 정리 및 문제 해결 (0) | 2021.02.11 |
[열혈 C++ 프로그래밍] Chapter02 - C언어 기반의 C++ 2 (0) | 2021.02.10 |