size() == 0? empty()!! (effective STL 04)
2015. 8. 25. 19:24ㆍ프로그래밍/Effective STL
728x90
728x90
empty()는 인라인함수! (상수시간)
list의 size()는 선형 시간에 수행되는 경우가 꽤 많다.
list에서 왜 문제가 되는가?
size() vs splice()
- splice()는 리스트를 중간에 잘라 붙이는 함수이다.
- size()와 splice()는 하나는 상수 시간, 다른 하나는 선형 시간일 수 밖에 없다.
- splice()가 잘려서 넘어갈 때 이것을 셀 것인가? 에 대해 작성 방식에 따라 다르다.
- splice()를 세어 총 크기에 더해주면 splice()는 선형, size()는 상수
- splice()를 세지 않고 붙여주면 splice()는 상수, size()는 선형
728x90
반응형
'프로그래밍 > Effective STL' 카테고리의 다른 글
[effective STL] 항목 08 : auto_ptr의 컨테이너는 절대 말들지 말기 (0) | 2015.09.06 |
---|---|
[effective STL] 항목 07 : 포인터를 컨테이너 담을 때 주의 (0) | 2015.09.06 |
[effective STL] 항목 06 : C++ 컴파일러의 어이없는 컴파일 조심! (2) | 2015.09.05 |
맴버 함수는 단일 요소 단위 보단 요소의 범위 단위로 (effective STL 05) (0) | 2015.08.27 |
복사는 컨테이너 안의 객체에 맞게 비용 최소화, 동작은 정확히(effective STL 03) (0) | 2015.08.25 |
컨테이너 독립적인코드라는 환상 조심!(effective STL 02) (0) | 2015.08.25 |
적재적소 알맞은 컨테이너(effective STL 01) (2) | 2015.08.25 |