본문 바로가기

C++

[C++] 우선순위큐에서 Compare 함수객체 사용 시 true면 우선순위가 낮아진다.

std::sort()의 Compare 의미:

sort(vec.begin(), vec.end(), Compare);

 

  • 여기서 Compare(a, b)가 true이면 → a가 b보다 앞에 와야 한다
  • 즉, a < b라는 의미
    → true 리턴하면 a가 앞쪽 (우선순위 높음)

priority_queue의 Compare 의미:

priority_queue<Type, Container, Compare>
  • 여기서 Compare(a, b)가 true이면 → a가 b보다 낮은 우선순위
    a가 뒤로 밀리고, b가 top으로 올라감
  • 즉, Compare는 사실상 a < b 같은 기준인데, 내부적으로 std::make_heap이 큰 값을 앞으로 오게 해주는 max-heap을 만들기 때문