vector
사용가능한 컨테이너함수: push_back(), pop_back();
벡터의 문제점: 메모리의 재할당, 느리다
vector<int> vec(3); //0으로 초기화된 벡터 3개를 미리 선언
vec.clear(); //vec안의 원소들을 모두 지움
vec.empty(); //비어있다면 true를 반환함
자주 사용되는 것들
vector<int>::iterator p;
vector<int>::iterator q;
vector v(n) : v는 기본값으로 초기화된 n개의 원소를 갖는다.
vector v(n,x) : v는 x값으로 초기화된 n개의 원소를 갖는다.
vector v(v2) : v는 v2컨터이너의 복사본이다.
p = v.begin() : p는 v의 첫 원소를 가리키는 반복자이다.
p = v.end() : p는 v의 끝을 표식하는 반복자이다.
v.clear() : v의 모든 원소를 제거한다.
v.empty() : v가 비었는지 조사한다. 비었으면 true를 반환한다.
q = v.erase(p) : p가 가리키는 원소를 제거한다. q는 다음 원소를 가리킨다.
q = v.erase(b,e) : 반복자구간[b,e)의 모든 원소제거, q는 다음 원소를 가리킨다
q = v.insert(p,x) : p가 가리키는 위치에 x값을 삽입. q는 삽입한 원소를 가리킴
v.push_back(x) : v의 끝에 x값을 추가한다.
v.pop_back() : v의 마지막 원소를 제거한다.
v.size() : v원소 개수의 반환
v[i] : v의 i번째 원소를 참조한다.
v.front() : 첫 원소 참조
v.back() : 마지막 원소 참조
v.assign(n,x) : n개의 원소에 x값을 할당한다.
v.reserve(n) : n공간만큼 미리 만들어놓고 쓴다(n만큼은 재할당이 일어나지 않는다)
v.resize(n) : n만큼 사이즈 변경, v(3)같이 초기화된 경우 3->n으로
임시객체와 swap을 이용해 지우는 방식
vector<int>().swap(v) //swap은 같은 컨테이너끼리, 같은 자료형끼리 가능