둘 다 정렬 기능을 가진 Tree형태의 자료구조이지만 내부 구조가 다릅니다.
priority_queue는 삽입과 삭제에 의해서 부모, 자식(위, 아래) 간의 우선순위는 확실하게 보장되지만, 양옆 노드와의 우선순위를 정의할 수 없습니다. 부모 노드는 자식 노드보다 우선순위가 높기 때문에 루트 노드가 최고 우선순위의 노드 라는 것"만" 보장합니다.
set은 이진 트리 중 이진 '탐색' 트리 이기 때문에 노드의 위치만 파악할 수 있다면 위, 아래, 양옆 모든 노드와도 우선순위를 비교할 수 있습니다.
모든 것들을 비교할 때는 set을 사용
Top만이 필요하다면 예정이라면 priority_queue을 사용 (훨씬 비용이 싸진다)
'자료구조와 알고리즘' 카테고리의 다른 글
Map과 Set의 차이 (0) | 2022.08.11 |
---|---|
트리 구조 (0) | 2022.02.22 |
트리 (0) | 2022.02.16 |
컨테이너 어댑터 (0) | 2022.02.11 |
std::deque (0) | 2022.02.05 |