[C++] STL 컨테이너의 목적

Date:     Updated:

카테고리:

태그:

이 글은 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보다 나은 인터페이스로 구연한 언리얼 만의 컨테이너


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기