[C++] STL 컨테이너의 목적
카테고리: Cpp
태그: STL
이 글은 C++ STL 컨테이너의 목적을 공부하고 정리한 글입니다
STL 컨테이너의 목적
- 모든 컨테이너에 적용되는 표준 인터페이스
- std 알고리듬은 많은 컨테이너에서 작동
- 템플릿 프로그래밍 기반
-
메모리 자동 관리
모든 컨테이너에 알맞은 표준 인터페이스라는 환상
- 모든 컨테이너에 같은 인터페이스가 적용되는 것은 이상하다
- 극단적으로 OOP를 추구한 사례
std::vector<int> scores; scores.push_back(10); // 스택 같아 보인다 std::list<int> ages; ages.push_back(100); // 스택 같아 보인다
메모리 단편화
- 빈번한 메모리 재할당은 메모리 단편화를 초래함
- 메모리 단편화는 엄청난 문제가 될 수 있음. 특히 가상 메모리를 지원하지 않는 플랫폼에서 프로그램을 실행할 때
- 메모리 단편화 때문에 애플리케이션이 뻗어 버릴 수 있음
- 즉, 총 여유 공간은 충분하나 충분히 큰 연속되는 메모리가 없는 경우
- 디버깅 및 고치는 게 쉽지 않음
회사 내부에서 만드는 STL 대체품들
- 많은 회사들이 자신만의 컨테이너를 만들어 STL을 대체품들
- EA
- EASTL
- STL과 호화 됨. 메모리 문제 등을 고친 컨테이너
- Epic Games (언리얼 엔진 4)
- TArray, TMap, TMultiMap, TSet
- STL보다 나은 인터페이스로 구연한 언리얼 만의 컨테이너
- EA
- 모든 컨테이너에 같은 인터페이스가 적용되는 것은 이상하다
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기