티스토리 뷰




이번편은 컨테이너의 포인터 타입에 대해 비교타입을 특정하라입니다.



set이나 map과 같은 associative container들은 항상 정렬상태를 유지하는 특징을 갖고 있습니다.


이때 정렬상태는 기준이 되는 특정 함수를 통해 비교를 통해 상태를 유지합니다.


set의 생성자함수 정의를 보면 알 수 있지만


비교를 위한 함수를 생성자를 선택하지 않으면 내부적으로 less<T>를 함수포인터로 갖게 됩니다.


less의 구현


less는 별다른 동작 없이 < 연산만을 하여 그 결과를 반환합니다.


하지만 T가 pointer type인경우는 어떻게 될까요?



결론은 포인터 주소를 비교하게 되게 때문에 원하는 대로 정렬이 되지 않습니다.


less<T*>를 한다해도 역시 *T 로 비교하지 않는 이상 의미가 없구요


따라서 사용자 정의 함수를 비교함수로 하게끔 해야합니다.






공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함