벡터 (STL): 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Lh334 (토론 | 기여)
Mintrupt (토론 | 기여)
8번째 줄:
C++의 배열은 [[메모리]]에서 연속적이다. 이것은 하나의 값을 가지는 블록들이 여러개가 붙어있는 것처럼 생각할 수 있다. 배열의 모든 요소는 같은 타입을 가져야만 한다.
 
벡터는 배열과 비슷하지만 확장된 기능을 가지고 있다. 벡터의 특징 중 하나는 at()이란 함수를 사용한다면, 존재하지 않는 요소에 접근하려 할 때 범위 에러를 발생할 것이다. 벡터는 템플릿 클래스이기 때문에, 원하는 모든 타입의 일반적인 배열(generic array)을 만들 수 있다. 이것은 벡터의 유용성을 매우 크게 하기 때문에, 모든 것을 배열처럼 사용할 수 있게 한다. 예를 들어, 벡터의 벡터를 만들 수 있다.
 
벡터는 무조건 데이터들을 선형적으로 만드려고 하기 때문에, capacity 보다 많은 양의 데이터를 추가시킬 경우에는, 현재 보유하고 있는 메모리의 두 배 만큼을 할당하기 때문에 단순한 추가 할당으로는 선형적인 공간을 만들어 내지 못하는 경우가 있을 수 있다. 이럴 때는 선형적인 다른 공간에 모든 원소를 하나하나 복사하기 때문에 속도가 느려진다.
 
{{토막글|컴퓨터}}