stl 사용할 때, 원소를 정렬하는 경우가 많은데, 그럴 때 주로 less, greater 같이 편리하게 미리 만들어져있는 것을 인자로
넣어서 정렬할 수 도 있지만, 오버로딩해서 사용할 수 도 있잖아요?
예를 들면
bool desc(int a int b) {
return a > b;
}
는 내림차순으로 정렬하는 코드인데, 어떻게 생각해야 내림차순이 되는건지 이해가 안되는데
이해할 수 있는 팁좀 부탁드립니다!..
선택정렬을 예로 들자면
크다 작다를 비교해서 두 원소를 교환하는 로직이 있잖아요
거기서 부등호만 바꿔주면 내림차순 오름차순이 되죠?
그것을 사용자가 정해준다고 생각하시면 돼요!
연산자 <를 재정의 하신다고 생각하시면 됩니다. 즉, cmp(a,b) == true면 a가 b보다 왼쪽에 있도록 합니다.
댓글을 작성하려면 로그인해야 합니다.
4whomtbts 4년 전
stl 사용할 때, 원소를 정렬하는 경우가 많은데, 그럴 때 주로 less, greater 같이 편리하게 미리 만들어져있는 것을 인자로
넣어서 정렬할 수 도 있지만, 오버로딩해서 사용할 수 도 있잖아요?
예를 들면
bool desc(int a int b) {
return a > b;
}
는 내림차순으로 정렬하는 코드인데, 어떻게 생각해야 내림차순이 되는건지 이해가 안되는데
이해할 수 있는 팁좀 부탁드립니다!..