여기서 중요한것은 "동적으로 할당한 배열 보다 좋다는 것이다." 이다. new 로 인하여 생성되는 메모리에 대해서는 사용자는 몇가지 염두를 해 두어야 한다.
하나. 메모리를 해체 해야 한다.
하나, delete도 메모리 타입에 맞추어서 해줘야 한다.
하나, delete는 new 와 쌍을 맞추어야 한다.
이런 염두를 없애기 위해선 vector 을 사용하면 된다고 말을 해준다. (그렇다고 동적 배열 메모리 할당 기능을 나쁘게 보는것은 아닐것이다.)
string에 대해서도 이야기를 해 주었는데, string 은 내부에서 참조 카운팅이 되고 있을 수 있다. 이 참조 카운팅 때문에, 성능에 아주 좋은 효과를 보지만, 멀티 쓰레딩에선 독이 될수 있는 부분이라고 지적한다. 이럴때는 3가지 방법을 제시했는데,
하나, 참조카운팅 기능을 없앤다 (string 을 뜯어 고쳐야 할듯..)
하나, 참조카운팅을 지원하지 않는 다른 string을 구현한다.(또는 라이브러리를 사용한다)
하나, vecter<char> 를 사용하여, 구현한다.
이 정도로 요약될수 있는 항목이였다.
하나. 메모리를 해체 해야 한다.
하나, delete도 메모리 타입에 맞추어서 해줘야 한다.
하나, delete는 new 와 쌍을 맞추어야 한다.
이런 염두를 없애기 위해선 vector 을 사용하면 된다고 말을 해준다. (그렇다고 동적 배열 메모리 할당 기능을 나쁘게 보는것은 아닐것이다.)
string에 대해서도 이야기를 해 주었는데, string 은 내부에서 참조 카운팅이 되고 있을 수 있다. 이 참조 카운팅 때문에, 성능에 아주 좋은 효과를 보지만, 멀티 쓰레딩에선 독이 될수 있는 부분이라고 지적한다. 이럴때는 3가지 방법을 제시했는데,
하나, 참조카운팅 기능을 없앤다 (string 을 뜯어 고쳐야 할듯..)
하나, 참조카운팅을 지원하지 않는 다른 string을 구현한다.(또는 라이브러리를 사용한다)
하나, vecter<char> 를 사용하여, 구현한다.
이 정도로 요약될수 있는 항목이였다.
'책 정리 > Effective STL' 카테고리의 다른 글
항목 18 : vector<bool> 보기를 돌 같이 하자. (0) | 2008.07.17 |
---|---|
항목 17 : 쓸데없이 남은 용량은 "바꿔치기(swap) 묘수"를 써서 없애 버리자. (0) | 2008.07.17 |
항목 16 : 기존의 C API에 vector와 string을 넘기는 방법을 알아두자 (0) | 2008.07.17 |
항목 15 : 잊지 말자! string은 여러 가지 방식으로 구현되어 있다는 사실을... (0) | 2008.07.16 |
항목 14 : reserve는 필요 없이 메모리가 재할당되는 것을 막아 준다. (1) | 2008.07.16 |
항목 12 : STL 컨테이너의 쓰레드 안전성에 대한 기대는 현실에 맞추어 가지자. (0) | 2008.07.15 |
항목 11 : 커스텀 할당자를 제대로 사용하는 방법을 이해하자. (0) | 2008.07.15 |
항목 10 : 할당자(allocator)의 일반적인 사항과 제약 사항에 대해 잘 알아 두자. (2) | 2008.07.14 |
항목 9 : 데이터를 삭제할 때에도 조심스럽게 선택할 것이 많다. (0) | 2008.07.13 |
항목 8 : auto_ptr의 컨테이너는 절대로 만들지 말자. (0) | 2008.07.13 |
최근댓글