본문 바로가기

Algorithm/TIP

[c++] compare 함수 (sort / priority queue)

728x90

a>b 

sort: 큰거부터 

pq : 작은거부터

 

a<b

sort: 작은거부터

pq:큰거부터 

 

 

 

 

SORT

sort의 queue는 false를 반환해야 swap

bool compare(int a, int b){

	return a>b ; //내림차순

}


sort(arr.begin(), arr.end(), compare);

 

기본 정렬은 오름차순 정렬(1,2,3...) 이며, 

내림차순 정렬은 다음과 같다

sort(arr.begin(), arr.end(), greater<int>());

 

 

PRIORITY QUEUE

priority queue의 compare는 true를 반환해야 swap 

부모와 자식의 위치가 swap된다 


struct compare{
	bool operator()(int a, int b){
    	return a>b; // true인 경우 부모와 자식이 바뀐다
	}
};


int main(){

	priority_queue<int, vector<int>, compare> pq; // -> 가장 작은 값이 root

}

 

 

 

struct compare{
	
    bool operator()(pair<int,int> a, pair<int,int> b){
    	return a.second > b.second; //second를 기준으로 오름차순 (min heap
    }


};


priority_queue<pair<int,int>>, vector<pair<int,int>>, compare> pq;
728x90

'Algorithm > TIP' 카테고리의 다른 글

SQL 고득점 Kit [JOIN 시리즈]  (1) 2022.10.28
TIP) 'b' - 'a' = 1  (0) 2022.10.22
[c++] get() getline()함수 - 특정 문자가 나올때 까지 입력받기  (0) 2022.10.21
[c++] unique함수  (0) 2022.10.18
[c++] array 선언 초기화  (0) 2022.09.01