- vector
- 랜덤 access
 - 현재 할당 사이즈를 넘을 경우 마다 복사 비용 발생
 - 중간 element 의 삭제,추가 시 비용 발생
 - reserve 사용 을 고려
 - iterator 가 삽입,삭제 중 정상유지 될수 없어 for 문 사용시 iterator 사용때 주의
 
 - list
- 연결리스트
 - 삽입
- 굳이 중간에 넣어야 한다면 vector 보다 낫다
 
 - 조회
- vector 가 낫다
 
 
 - iterator 컨테이너의 삽입 삭제 동작 전후로도 항상 유지된다는 장점
 - set
- 정렬
 - 중복 불가능
 - unique element 관리에 사용
 
 - map
- 정렬
 - key, value
 - key 값은 바꿀 수 없다 당연히
 - 이진 트리
 - O(logn)
 - 비교적 빠른 검색
 - 비슷한 양상의 데이터가 순차 삽입 될 경우 비용 발생
- 트리 재정렬이 필요해짐 (리밸런싱)
 
 
 - unordered_map
- hash table 기반
 - O(1) 검색
 - 빠른 검색
 - 삽입/검색 시 마다 해쉬 함수를 돌려야 하는 비용 발생
 - 많은 양의 element 일 경우 맵보다 해쉬 함수 비용보다 검색 비용이 좋아진다
 
 
- multi_xx
- 동일 키에 element 중복가능
 
 
고정 사이즈로 사용되고 삽입이나 검색이슈가 없을 경우 일반 배열을 사용하는것도 나쁘지 않다.
– stack 에 할당되며 런타임 비용이 없기 때문
댓글 남기기