[effective STL] 항목 21 : 연관 컨테이너용 비교 함수는 ==에 대해선 false를 반환해야 한다.

2016. 1. 3. 18:31프로그래밍/Effective STL

728x90
728x90

예제

set정의 시 less_equal<int>를 사용하게 되면

같은 값 10을 두 번 insert 하게 된다면?


less_equal 비교 함수에 의해 표현식이 참인지를 검사한다.

!(10 <= 10) && !(10 <= 10)

결국 값은 false가 나오고 set에 계속해서 값을 쑤셔 넣는 꼴이 된다.

이런 결과가 생길 수 있으므로 비교 함수를 정의 할 때는 같은 값에는 false를 반환해야 한다.


기술적인 용어로 설명

strict weak ordering의 요구 사항 중 하나가 이 것.


추천 책

조스티스의 The C++ Standard Library 

오스턴의 Generic Programming and the STL

SGI STL 웹 사이트

728x90
반응형