[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
반응형
'프로그래밍 > Effective STL' 카테고리의 다른 글
[effective STL] 항목 24 : map에서 []나 insert는 효율 문제에 주의하자. (0) | 2016.02.07 |
---|---|
[effective STL] 항목 23 : 연관 컨테이너 대신 정렬된 벡터를 쓰는 것이 좋을 때도 있다. (2) | 2016.02.07 |
[effective STL] 항목 22 : set과 multiset의 키를 바꾸지 말자. (1) | 2016.02.07 |
[effective STL] 항목 20 : 연관 컨테이너에 포인터 넣을 때 비교 함수자 타입을 정해주기 (1) | 2015.12.27 |
[effective STL] 항목 18 : vector<bool> 쓰지마 (1) | 2015.12.26 |
[effective STL] 항목 17 : 용량 바꿔치지 묘수(swap) (0) | 2015.12.26 |
[effective STL] 항목 16 : 기존 C API에 vector와 string 넘기기 (0) | 2015.12.26 |