README
1. 적은양의 자료일 경우 사용할 컨테이너들
Array
배열 자료구조
장점
적은양의 데이터에 유리
단점
크기 변경 불가
vector
가변배열 자료구조
장점
적은양의 자료에 유리
크기 변경 가능
순차 접근 가능
random access 가능
단점
중간에 삽입 및 삭제 할 때 최대 O(N) 소요. 왜냐하면 모든 원소를 한칸씩 이동 시켜야 하기 때문이다.
검색이 느리다
많은 양의 자료에 불리하다.
LIST
더블 링크드 리스트(DLL)로 구현되어있다.
장점
중간에 삽입 삭제가 빠르다. O(1), 포인터의 이동만 요구하기 때문이다.
크기가 변경 가능하다
적은양의 자료에 유리하다
순차 접근 가능하다.
단점
검색 느리다
특정 원소에 접근하려면 선형 탐색 해야 한다. random access 지원 안한다.
summary
중간 삽입 삭제가 없고 랜덤 접근이 많다 : vector
중간 삽입 삭제가 있고 랜덤 접근이 없다 : list
데이터 개수가 적은 경우 vector가 더 좋다.
많은 양의 데이터 + 검색 활발
검색 시에 유리하다
단점은 원소 값을 직접 수정할 수 없다.
삭제 후 삽입으로 원소 값을 수정한다.
map
이진탐색트리 기반
균형이진트리
key:value
장점
많은 양의 자료에 유리
검색 속도 빠름
key:value 따로 저장
자동 정렬
단점
적은양엔 오버헤드로 인해 손해
set
이진탐색트리 기반, 게임에서는 많이 안쓴다.
장점
많은 양의 자료에 유리
검색 속도 빠름
find() 알고리즘이 아닌 find() 멤버함수를 사용하자.
key: value
자동 정렬
단점
적은양엔 오버헤드로 인해 손해
양방향 반복자 이므로 랜덤 access 반복자를 요구하는 알고리즘 사용 불가. (예 : 정렬 알고리즘)
Last updated
Was this helpful?