C++ sort() compare function

김관중·2024년 1월 20일

C++

목록 보기
3/15

sort()를 사용할 때 오름차순으로 정렬하는 것 뿐만 아니라

다른 방식으로도 정렬할 수 있는데 이 때 사용하는 것이

sort() 파라미터 중에 하나인 compare 함수 부분이다.

(이때 compare 함수는 bool을 반환한다.)

이때 람다를 사용하기도 하고 직접 함수를 정의하기도 한다.

다음은 람다를 사용한 pair에서 second 값을 기준으로

정렬하는 예제이다.

vector<pair<int, int>> v;
.
.
.
sort(v.begin(), v.end(), [](auto &l, auto &r){
	return l.second < r.second;
});

위 코드의 리턴값의 의해 정렬되는 것이기 때문에, 부호만 바꾸어 주면

내림차순도 가능하다.

다음은 람다를 활용한 tuple의 세번째 원소를 기준으로 한 오름차순 정렬이다.

vector<tuple<int, int, int>> v;
.
.
.
sort(v.begin,v.end(),[](auto &l, auto &r){
	return get<2>(l) < get<2>(r);
});
profile
꾸준히 학습하기

0개의 댓글