ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C++ 컨테이너 어댑터란 무엇인가?
    C++ 와 자료구조 2020. 3. 15. 21:03
    반응형

    컨테이너 어댑터(Container Adapter)?

    컨테이너 어댑터는 순차열 컨테이너를 다른 기능을 제공하는 순차열 컨테이너로 정의하기 위한 클래스 탬플릿이다.

    조금 더 쉽게 이해하기 위해서 순차열 컨테이너를 확장(adapt) 한 형태라고 생각하면 편하다.

    다른 기능을 제공하기 위해서 컨테이너의 기존 인터페이스를 확장하기 때문에 이런 클래스 탬플릿을 어댑터 클래스라고 부른다.

     

    <종류>

    stack<T> : #include <stack> 헤더에 정의되어있는 어댑터.

    deque <T> 컨테이너를 후위 선출(LIFO)로 저장하는 방식으로 변환하는 어댑터 클래스 탬플릿이다.

     

    queue <T> : #include <queue> 헤더에 정의되어 있는 어댑터.

    deque <T> 컨테이너를 선입선출(FIFO)로 저장하는 방식으로 변환하는 어댑터 클래스 탬플릿이다.

     

    priority_queue <T> : #include <queue> 헤더에 정의되어 있는 어댑터.

    vector <T> 컨테이너를 가장 큰 원소가 항상 앞에 오도록 원소들의 순서를 관리하는 큐로 변환하는 어댑터 클래스 탬플릿이다.

     

    어댑터 클래스는 기존의 컨테이너 연산을 자신의 연산으로 변환하여 처리한다. 어댑터 연산을 직접 구현할 수도 있다. 어댑터 클래스를 사용했을 때 장점은 public 인터페이스(소멸자와 virtual 가상 함수로만 이루어진 클래스)를 단순하게 하고 이를 사용하는 코드의 가독성이 올라간다.

    사용방법과 코드는 다음 장에 더 자세히 설명해 드리겠습니다!

    반응형
Designed by Tistory.