[effective STL] 항목 13 : 동적으로 할당된 배열보다는 vector와 string이 낫다.
2015. 10. 2. 12:24ㆍ프로그래밍/Effective STL
728x90
728x90
new는 많은 것을 생각하게 만든다.
new는?
- 언젠간 메모리를 해제해야 한다.
- delete도 메모리 타입에 따라 제대로 써야 한다. 배열?
- delete는 new 한번에 꼭 한번만 호출해야 한다. if var == nullptr 문이 생기지 이것때문에..
vector와 string는 메모리의 소멸을 자동으로 해준다.
STL 시퀀스 컨테이너의 필수사양을 완벽히 가지고 있다.
문제점
string가 참조 카운팅으로 구현된 것이 많다.
- 다중 스레드 환경에서 수행 성능의 저하가 만만치 않다.
해결방법
- 라이브러리의 참조 카운팅 기능을 끄는 것을 찾는다.
- 참조 카운팅을 사용하지 않는 string를 구현한다.....(ㅂㄷㅂㄷ?)
- string 대신에 vector<char>를 고려해본다.
728x90
반응형
'프로그래밍 > Effective STL' 카테고리의 다른 글
[effective STL] 항목 16 : 기존 C API에 vector와 string 넘기기 (0) | 2015.12.26 |
---|---|
[effective STL] 항목 15 : string은 여러 가지 방식으로 구현되어 있다. (0) | 2015.12.17 |
[effective STL] 항목 14 : 재할당 방지 reserve (0) | 2015.12.17 |
[effective STL] 항목 10 : 할당자(allocator)의 일반적인 사항과 제약 사항 (1) | 2015.09.14 |
[effective STL] 항목 09 : 데이터를 삭제할 때에도 조심스럽게 선택 (0) | 2015.09.07 |
[effective STL] 항목 08 : auto_ptr의 컨테이너는 절대 말들지 말기 (0) | 2015.09.06 |
[effective STL] 항목 07 : 포인터를 컨테이너 담을 때 주의 (0) | 2015.09.06 |