map 정렬 방식. 240605 추가.

phoenixKim·2023년 12월 6일
0

알고리즘 기법

목록 보기
67/72

결론

: map을 이용해서 정렬해야 할 경우, key 값 조건식으로
작성해야 함. (규칙이다.)
따라서 value로 정렬하려면, 구조체 만들어서 vector 에다가 넣고, 정렬 하는 방법으로 해야 한다.
안그러면 클래스로 만들어서 작성해야 하는데, 꽤나 복잡하고, 실수할 여지가 굉장히 큼.

관련 문제

: 2910번. 빈도 정렬


  • 3번째 인자는 디폴트로 less key 로 되어 있음.
    -> 즉 유저 타입의 정렬 조건식 만들 때, second 타입으로 넣을 수 없음.
    : 그런데 만약에 first 타입이 pair, 나 클래스 타입이라고 한다면, 내 마음대로
    할 수 있다는 것임.

즉, 유저타입의 정렬 기준을 만들 때는 key값을 이용해 기준을 만들어야 함.

  • 내림차순으로 정렬.

  • 오름차순으로 정렬

  • 주의할 점.
    : 반드시 조건식 만들때, const 함수로 만들어야 함!
    -> map의 경우, 유일한 키값으로 이루어지고 있기 때문임.

  • 그렇다고 해서 key 값이 인자로 들어가니까. 이렇게 하면 되는거 아님???
    : No!! 여전히 에러

  • map을 조사하면 const 타입으로 되어있는 것을 확인할 수 있음.


  • value 타입으로 정렬하고 싶다면, 유저클래스 타입으로 따로 만들어야 할 듯함.
    이 때는 operator() 연산자를 사용해야 해!

value 타입으로 정렬하기

: c++철저 입문 p.208

profile
🔥🔥🔥

0개의 댓글

관련 채용 정보