항목 3 : 복사(copy)는 컨테이너 안의 객체에 맞게 비용은 최소화하며, 동작은 정확하게 하자.
STL 컨테이너들은 객체를 복사하여, 데이터를 쌓아둔다. 만약 기본자료형이 아닌 클래스 객체형이라면, 반드시 복사 생성자와 operator = 을 꼭 만들어 두어야만 켄터에너에 순풍 순풍 넣을수 있다. (암시적 생성자와 operator= 도 있다.) 이런 컨테이너에 한가지 문제점이 지적되었다. 사용자 왈 : "만약 30Byte 짜리 데이터 10만개를 넣는다면, 너무 많은 비용을 지불하는게 아니냐?" 이 때문에 크게 두가지 해결 방법이 나오게 된다. 첫째, 포인터를 넣어 복사 비용을 줄이자. 사용자는 신나게 컨테이너에 포인터를 넣기 시작하지만, 컨테이너 왈 : "리소스 해체 의무는 너가 저야 한다~" .. 결국 사용자는 울며 겨자먹기로 컨테이너에 포인터를 넣고, 힘들게 리소스 해체도 하게 된다. 이렇게 되..
책 정리/Effective STL
2008. 7. 12. 22:35
최근댓글