Vector
Vector는 배열과 유사한 구조를 가진다. Index와 이에 대응하는 Data로 구성된 Random Access가 가능한 자료구조이다.
Vector와 List의 차이
Vector | List | |
---|---|---|
동적인 크기 | O | O |
중간 삽입, 삭제 용이 | X | O |
순차 접근 가능 | O | O |
랜덤 접근 가능 | O | X |
Vector를 사용하는 경우
- 저장할 데이터가 가변적이다. 일반 배열과는 달리 동적인 형태를 가진다
- 중간에 데이터 삽입과 삭제가 빈번하게 일어나지 않는다 배열과 특성과 일치
- Random Access를 한다
큰 데이터 규모, 잦은 검색은 다른 컨테이너를 사용하자.
기본적인 사용법은 다음과 같다
#include <vector>
using namespace std;
int main(){
vector<int> v1;
vector<int> * v2 = new vector<int>;
v1.push_back(1);
v2->push_back(2);
return 0;
}
Method
Element Access
- at(index)
- front()
- back()
Iterator
- begin()
- end()
- rbegin()
- rend()
Capacity
- empty() 비어있는지 확인한다
- size() 크기를 반환한다
- reserve(size) 지정된 크기의 저장 공간을 확보한다
Modifier
- assign(5, 2) 2의 값을 5개 할당한다
- push_back(T) 마지막에 원소를 추가한다
- pop_back() 마지막에 원소를 삭제한다
- clear() 모든 원소를 삭제한다
- erase(iterator, [iterator]) 특정 위치의 원소나 지정 범위의 원소를 삭제한다
- insert(iterator) 특정 위치에 원소를 삽입한다
- swap(vector) vector의 두 원소를 교환한다