[C++ STL] 벡터 (Vector)
·
Programming/C++
개요가변 길이 배열이라고 생각하면 된다.벡터 내부의 원소들이 실제로 메모리에서 연속적으로 저장되어 있다.시간 복잡도임의 위치 원소 접근 (at, []): O(1)맨 뒤에 원소 삽입 및 제거 (push_back, pop_back): O(1)엄밀하게 말하자면 amortized O(1) (amortized는 분할 상환이라는 뜻)보통 벡터는 현재 가지고 있는 원소의 개수보다 더 많은 공간을 미리 할당해 놓음 (부족할 때마다 2배씩 늘리는 방식)이런 상태에서 원소를 삽입하면 O(1)로 작동하지만, 만약 벡터가 꽉 차서 벡터의 공간을 늘려야 하는 경우 크기가 두 배인 새로운 벡터를 만들고 기존 벡터에 있는 모든 값들을 복사하는 작업을 하게 되므로 O(n)의 시간 복잡도가 소요됨다만, 이것을 평균적으로 보았을 때는 ..