벡터(vector)

벡터: 헤더파일 <vector> 에 정의되어 있는 순차 컨테이너의 한 종류. 동적 배열


* 벡터와 배열의 공통점
배열처럼 메모리상에 연속으로 존재하고 있다. 때문에 배열처럼 거리를 이용해 접근할 수 있고, 리스트처럼 반복자(iterator)을 이용해 접근할 수도 있다.

* 벡터와 배열의 차이점
벡터 컨테이너는 선언 이후 공간의 크기를 변경할 수 있다. 배열보다 더 많은 메모리 사용

* 벡터의 장점
- 각 원소를 인덱스 값으로 바로 참조 가능(상수 시간 소요. 빠르다)
- 랜덤 접근 가능(선형 시간 소요)
- 벡터 끝에 새로운 원소 추가 제거가 용이(상수 시간 소요 constant amortized time)

* 벡터의 특징
- 접근과 앞 뒤 추가는 빠르다
- 중간 삽입 삭제는 느리다


*사용방법

1. STL 벡터 헤더 선행 처리
#include <vector>

2. 선언
vector<타입> 변수이름;
vector<int> _vNum;

3. 벡터 반복자 선언
vector<타입>::iterator 반복자이름;
vector<int>::iterator _iter;

4. 사용
변수이름.키워드;
(벡터를 선언한 변수이름뒤에 점(.)을 넣으면 사용 할 수 있는 함수들이 등장한다. )
(등장한 함수에서 원하는 기능을 찾아 쓰자)
예시) _vNum.push_back(1); //첫번째 벡터에 1을 넣어 초기화

5. 자주 사용하는 벡터 함수
.push_back(데이터);
.pop_back(데이터);
.begin() => 벡터의 0번 인덱스
.end() => 벡터의 마지막 인덱스
  (데이터가 한개일 때 begin과 end 가 동일 값)
.insert(위치, 값) => 해당 위치에 값을 추가
.insert(위치, 갯수, 값) => 해당 위치에 갯수만큼 값 추가
.erase(위치) => 해당 위치 값 삭제




예시)
//예시 코드


//결과 확인



댓글