queue
선입선출. 내부적으로 deque로 구현.
priority_queue
우선순위가 높은것이 항상 선출.
힙(heap) 구조. = ["완전 이진 트리 구조", "부모가 항상 우선순위 높음", 배열기반]
내부 구조 배열 지정 차이
- vector:
- 장점:
- std::vector는 연속된 메모리 블록을 사용하므로 데이터 접근이 빠르다.
- 요소들의 삽입 및 삭제가 빠르게 수행되는 경우에 효율적이다.
- 단점:
- 용량이 변경될 때마다 데이터 복사 및 재할당이 발생할 수 있다.
- 요소 삽입 및 삭제 작업은 일반적으로 상수 시간이 아닌 로그 시간이 걸릴 수 있다.
- 장점:
- deque:
- 장점:
- std::deque는 양방향 큐 구조로 데이터 삽입 및 삭제가 빠르다.
- 큐의 크기가 커지면서 재할당이 발생해도 요소들의 재배치 없이 요소 삽입이 가능하다.
- 단점:
- std::deque는 메모리 사용 및 관리 측면에서 약간 더 복잡할 수 있다.
- 데이터의 접근 시점에 따라 캐시 효율성이 std::vector에 비해 약간 떨어질 수 있다.
- 장점:
map/set
균형 이진 탐색 트리 구조.(레드 블랙 트리?)
[왼쪽 자식 < 루트 < 오른쪽 자식] 구조이다. (왼쪽 작고, 오른쪽 크다)
key 기준 less/greater 정렬만 가능.
'c++ 자료구조, 알고리즘' 카테고리의 다른 글
트라이(trie) 구조 (0) | 2023.09.06 |
---|---|
Quick 정렬 (0) | 2023.08.27 |
vector 주소 재 할당 문제 (0) | 2023.08.27 |
최소신장트리(MST) 구현 - [크루스칼 알고리즘] (0) | 2023.08.20 |
다익스트라 길찾기 c++ (0) | 2023.02.22 |