이 이야기는 컨테이너에만 맞는 말이 아니라고 생각한다. 물론 STL 책이니 켄테이너에만 이야기 해야 한다고도 생각한다. ^^
컨테이너에 독립적인 코드라 하면, 어떤 .. 컨테이너에도 적용 시킬수 있는 코드를 말한다. 그렇다면 독립적인 코드가 왜 환상인가? ... STL 컨테이너를 써본 사람은 알겠지만 각각 컨테이너마다 사용하는 iterator, 데이터 넣기, 빼기, 정렬하기, 검색하기 등.. 각 켄테이너에 맞는 코드가 따로 있기 때문이다.
그렇다면 어떻게 코딩해야 하는가?
컨테이너를 class 에 넣어 둔다.
typedef 를 이용하여 컨테이너명을 재정의한다.
컨테이너에 접근 하려면 class 에 접근 하게 만든다.
이제 컨테이너를 바꾸게 바꾸어야만 할 때, 디버깅을 해야만 할때
이 class 의 컨테이너에 접근 하는 곳만 수정하면 그나마 쉽게 컨테이너를 바꿀수 있다.
물론 정확하게 판단하여 정확한 컨테이너를 골라 정확한 코딩을 한다면, class 에 넣지 않아도 되지만, .. 어디 그게 되야 말이지, ....
컨테이너에 독립적인 코드라 하면, 어떤 .. 컨테이너에도 적용 시킬수 있는 코드를 말한다. 그렇다면 독립적인 코드가 왜 환상인가? ... STL 컨테이너를 써본 사람은 알겠지만 각각 컨테이너마다 사용하는 iterator, 데이터 넣기, 빼기, 정렬하기, 검색하기 등.. 각 켄테이너에 맞는 코드가 따로 있기 때문이다.
그렇다면 어떻게 코딩해야 하는가?
컨테이너를 class 에 넣어 둔다.
typedef 를 이용하여 컨테이너명을 재정의한다.
컨테이너에 접근 하려면 class 에 접근 하게 만든다.
이제 컨테이너를 바꾸게 바꾸어야만 할 때, 디버깅을 해야만 할때
이 class 의 컨테이너에 접근 하는 곳만 수정하면 그나마 쉽게 컨테이너를 바꿀수 있다.
물론 정확하게 판단하여 정확한 컨테이너를 골라 정확한 코딩을 한다면, class 에 넣지 않아도 되지만, .. 어디 그게 되야 말이지, ....
'책 정리 > Effective STL' 카테고리의 다른 글
항목 10 : 할당자(allocator)의 일반적인 사항과 제약 사항에 대해 잘 알아 두자. (2) | 2008.07.14 |
---|---|
항목 9 : 데이터를 삭제할 때에도 조심스럽게 선택할 것이 많다. (0) | 2008.07.13 |
항목 8 : auto_ptr의 컨테이너는 절대로 만들지 말자. (0) | 2008.07.13 |
항목 7 : new로 생성한 포인터의 컨테이너를 사용할 대에는 컨테이너가 소멸되기 전에 포인터를 delete하는 일을 잊지 말자. (0) | 2008.07.13 |
항목 6 : C++ 컴파일러의 어이없는 분석 결과를 조심하자. (0) | 2008.07.13 |
항목 5 : 단일 요소를 단위로 동작하는 멤버 함수보다 요소의 범위를 단위로 동작하는 멤버 함수가 더 낫다. (0) | 2008.07.13 |
항목 4 : size()의 결과를 0과 비교할 생각이라면, 차라리 empty를 호출하자 (0) | 2008.07.12 |
항목 3 : 복사(copy)는 컨테이너 안의 객체에 맞게 비용은 최소화하며, 동작은 정확하게 하자. (0) | 2008.07.12 |
항목 1: 적재적소에 알맞는 컨테이너를 사용 하자. (0) | 2008.07.11 |
Effective STL 목차 및 링크 (0) | 2008.07.11 |
최근댓글