카테고리 없음

벡터(vector)와 와 리스트(list) 차이

지창준 2024. 1. 29. 08:59

벡터 = 배열 기반으로 연속된 메모리 공간을 가지고 있다

생성시 메모리 heap에 생성되며 동적 할당 됨
(인덱스 값을 증가시키는 것(간단한 방식)으로 접근이 가능)

vector<string> v;로 선언
v[]로 배열처럼 접근 가능


리스트 = 노드 기반 컨테이너 (c언어의 링크드 리스트와 비슷)

연속된 메모리 공간이 아닌 현재 가리키고 있는 노드와 다음 노드의 주소를 알기때문에 갱신하는 방식
(인덱스로 접근 하는 방식 불가)

erase()
리스트의 데이터 삭제
pop_front();
리스트 앞의 데이터 삭제

 

+)

배열과 벡터의 차이
배열은 크기가 고정, 벡터는 동적으로 변함
(저장할 데이터의 개수를 미리 알 수 없다면 벡터가 유용)

 

 

+)

iterator
배열의 요소를 가르키는 포인터
벡터에서 bdgin함수는 배열의 처음 주소를 반환하는 함수

*iterator -> 포인터 느낌