프로그래밍 문법/c++

사용자 정의 정렬(sort)

씩씩한 IT블로그 2020. 6. 21. 21:27
반응형

0. 기본구조

기본적인 구조는 아래와 같다. comp에는 정렬하고싶은 형태를 반환하는 함수를 넣는다.

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

1. 함수의 input

compare함수는 정렬하고자 하는 배열의 요소에 맞는 type을 input으로 갖어야 한다.

예를들어 2차원벡터(벡터를 요소로 갖는경우)의 경우 함수 comp의 파라미터를 벡터로 받아야 하고,

문자열을 요소로 같는 경우는 함수 comp의 파라미터를 문자열로 받아야 한다.

2. return값

return이 true가 나오면 바꾸지 않고, false가 나오면 바꾼다.

3. 소스코드

bool cmp(vector<int> v1, vector<int> v2) {
    // v2가 크면 가만히 놔둬(true)
	if (v1[2] < v2[2]) {
		return true;
	}
    //같을땐 다른 조건이 필요
    else if (v1[2] == v2[2]) {
		return v1[0]<v1[0];
	}
    // v1이 크면 바꿔(false)
	else {
		return false;
	}
}

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

 

반응형