문제풀이(Problem Solving)/C++ 문제풀이에 유용한 것들

C++, 정렬할 때 이용되는 비교함수 특징

게임이 더 좋아 2022. 10. 5. 13:36
반응형
728x170

 

우선순위 큐에 들어가는 비교함수와

그냥 우리가 sort 할 때 쓰는 비교함수는 쓰는 모양이 다르다.

 

//구조체 함수자
struct cmp{
    bool operator()(int a, int b){
        return a > b;
    }
};


//그냥 비교함수
bool comp(int x, int y){
    return x < y;
}

 

그래서 이용하는 방법도 다르다.

vector<int> vec;

for(int i = 0; i<M; i++){

    vec.push_back(x);
}
sort(vec.begin(), vec.end(), comp);

 

다르다.

priority_queue<int, vector<int>, cmp> q;

 

다른 이유는 레퍼런스를 보면 더 쉽게 알 수 있다.

 

우선순위 큐는 이렇다..

 

 

sort에서는 이렇다.

 

 

조금 다르지만.. 이에 대한 깊은 이해는 나중에 해도 된다.

코딩테스트를 하기 위한 이해는 다르다는 것만을 인지하자.

 

그냥 우리가 사용자 정의 함수는 sort에 쓸 수 있고

구조체를 만들어서 쓰는 것은 우선순위 큐라고 생각하자.

반응형
그리드형