#include <vector> // 헤더파일 포함
#include <iostream>
int main() {
std::vector<int> intVec;
// 원소 추가
intVec.push_back(10);
intVec.push_back(20);
intVec.push_back(30);
// 반복자를 사용한 출력
for (std::vector<int>::iterator iter = intVec.begin(); iter != intVec.end(); ++iter) {
std::cout << *iter << std::endl;
}
// 인덱스를 이용한 접근도 가능
std::cout << intVec[0] << std::endl;
return 0;
}
📌특징
- 동적 배열의 구조를 C++로 구현
임의 접근(random access)이 가능함- **메모리 연속성 보장(캐시 성능 좋음)
- 맨 뒤에 원소 삽입 시 O(1) 으로 빠르지만 앞이나 중간 삽입 시 O(n) 소요
- 할당한 메모리 공간 보다 더 많은 원소 삽입 시 새로운 메모리 할당, 원소 복사가 일어나게 됨
📌멤버 함수
**push_back(val)
- 맨 뒤에 원소를 추가
- 필요시 capacity 증가
**pop_back()
- 맨 뒤의 원소를 제거
**size()
- 현재 저장된 원소의 개수
**capacity()
- 실제 할당된 메모리 크기
**resize(n)
- 크기를 n으로 조절
- 자동으로 초기화 됨
**reserve(n)
- n만큼 capacity 할당
- 자동으로 원소를 채우지 않음
**at(index)
- 안전한 인덱스 접근
- 범위를 벗어나면 예외 발생
**insert(iter,val)
iter가 가리키는 위치에 원소 삽입- 중간 삽입 시 O(n)소요
**erase(iter)
iter위치의 원소 제거erase(start, end)로 범위 제거 가능