Vector & Array
vector (class)
vector를 생성하면 메모리 heap에 생성되며 동적할당된다.
array와의 가장 큰 차이점은 array는 크기가 컴파일할 때 결정되므로
후에 원소를 추가하거나 삭제하는 것이 불가능하며 무조건 스택 메모리를 사용해야하지만,
vector는 크기가 동적으로 변한다. 가변 크기의 데이터 컨데이너가 바로 vector이다.
vector는 메모리를 재할당하는 데 용이하지만, 포인터를 통한 접근이기 때문에 속도가 느리다.
vector를 사용해야할 case
- 저장할 데이터의 개수가 정해지지 않은 경우(가변의 경우)
- 데이터 접근의 랜덤 엑세스가 필요한 경우
- 중간에 데이터 삽입이나 삭제가 일어나지 않는 경우
배열 기반 컨테이너이기 때문에 push_front(), pop_front()는 지원하지 않는다.
vector 초기화
vector <자료형> 변수명
: 변수를 생성
vector <자료형> 변수명 (숫자)
: 숫자만큼 벡터 생성 후 0으로 초기화
vector <자료형> 변수명 = { 변수1, 변수2, 변수3,,,}
: { ... } 괄호 안 변수값들로 벡터 초기화
vector <자료형> 변수명 [ ] = { , }
: 벡터 배열(2차원 벡터) 선언 및 초기화(열은 고정, 행은 가변)
vector < vector <자료형> > 변수명
: 2차원 벡터 생성 (열과 행 모두 가변)
vector <자료형> 변수명.assign( 범위, 초기화 값 )
: 벡터의 범위 내에서 해당 값으로 초기화
vector Iterators
v.begin() | 벡터 시작점의 주소 값 반환 |
v.end() | 벡터 (끝부분 + 1 )의 주소값 반환 |
v.rbegin() | (revers begin) 벡터의 끝 지점을 시작점으로 반환 |
v.rend() | (revers end) 벡터의 (시작+1) 지점을 끝 부분으로 반 |
vector 사용 예시
int main() {
//크기가 0인 벡터
vector<int> v1;
//초기값 설정으로 크기가 정해진 벡터
vector<int> v2 = { 1,2,3,4,5 };
//크기가 정해진 벡터
vector<int> v3(10);
//크기와 초기화값이 정해진 벡터
vector<int> v4(10, 1);
//vetor 값 출력하기
cout << v2.at(0);
cout << v2[0];
return 0;
}
'Coding > Basic Concept (C++)' 카테고리의 다른 글
Template / Function template / Class template (0) | 2024.02.05 |
---|