728x90
반응형
vector VS array
vector | array | |
방식 | 인덱스 기반이 아닌 순차 데이터 저장 컨테이너 (인덱스 기반은 아니지만, 인덱스를 제공하여 인덱스를 이용해 접근 가능) |
인덱스 기반의 고정 크기 데이터 저장 컨테이너 |
동적 크기 변경 | 가능 (저장할 데이터 개수를 미리 알 수 없는 경우, vector를 사용하는 편이 좋음) |
불가능(컴파일 시점에 크기 정해짐) |
메모리 | array에 비해 많이 사용 | vector에 비해 적게 사용 |
데이터 접근 시간 | array에 비해 오래 걸림 | vector에 비해 빠르게 접근 |
vector 요소 접근
vector는 인덱스로도 접근이 가능하여 특정 요소에 접근할 때 [] 또는 at() 함수를 이용해서 접근이 가능합니다.
이때, []가 아닌 at() 함수를 사용하여 접근하는 것을 추천합니다.
만약 해당 vector의 range를 벗어난 경우 at() 함수를 이용했다면 out_of_range 예외를 발생시키지만, []을 사용할 경우는 오류 없이 지나가서 해당 위치에서 문제가 발생했는지 찾기 어렵습니다.
728x90
반응형
'ALGORITHM > C++' 카테고리의 다른 글
[sort] sort(정렬) 알고리즘 (0) | 2020.12.05 |
---|---|
[string] string to char vector/배열 (0) | 2020.12.04 |