ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [44] - Container Adaptors, Priority Queue
    Graphics 2021. 8. 11. 16:25

    이건 <algorithm>에 있는 건 아닙니다. 각각 필요한 헤더가 다릅니다. 이들은 기본적으로 어떤 컨테이너들을 감싸는 Wrapper에 가깝습니다. 아래가 Container Adaptors의 종류입니다.

    이 어댑터들은 다음과 같은 컨테이너들을 감쌀 수 있습니다.

    Container Adaptors에 대한 설명란에 provide different interface for sequential containers라고 명시되어 있기 때문에 다음과 같은 associative container에는 해당 사항이 없을 것입니다.

    이 Container Adaptors는 상당히 엄격하고 제한된 기능만을 제공합니다. 예를 들면 std::stack이 std::vector를 wrap하고 있더라도 결코 std::vector의 random access operation을 제공하지 않습니다. 또, vector에 push_back, Pop_back이 있다고 해도 같은 함수를 호출하지 않고 std::stack에 정의된 대로만 동작합니다. 이 외에는 모든 내용이 크게 어려운 것이 없습니다.

    std::stack

    간결한 interface와 행여나 발생할 실수를 방지해 준다는 점에서 사용할 수 있지만 std::vector가 있음에도 불구하고 사용할 만큼 가치가 있는 것 같지는 않습니다. 그리고 std::stack은 template parameter로 자료형 T와 Container의 type을 받는데 Container의 type을 명시해주지 않으면 deque로 기본 생성됩니다. std::queue, std::priority_queue도 별로 볼 것은 없습니다. 이게 어떤 역할을, 어떤 기능, interface인가는 data structure가 더 적합한 분야일 것입니다.

    그래도 std::priority_queue는 상당히 유용합니다. 입력의 순서와 상관 없이 무조건 조건을 만족하는 요소부터 밖으로 튀어나가기 때문입니다.

    'Graphics' 카테고리의 다른 글

    [46] - std::optional  (0) 2021.08.12
    [45] - Multithreading Execution Policy  (0) 2021.08.11
    [43] - Heap Operations  (0) 2021.08.11
    [42] - Set operations  (0) 2021.08.11
    [41] - Binary Search  (0) 2021.08.11
Designed by Tistory.