더북(TheBook)

이 예제의 앞부분에서는 std::deque을 사용하여 스택 객체 stk1을 만들어 사용했습니다. 이 경우 push_front() 함수처럼 스택에서 사용하면 안 되는 명령 코드를 작성하는 것을 막을 수 없습니다. 또한 push_back()pop_back() 같은 함수 이름은 자료 구조 맨 뒤에 데이터를 추가하거나 삭제한다는 의미인데, 스택으로 사용할 때에는 어느 위치에 데이터가 저장되는지는 알 필요가 없습니다.

이와는 달리 std::stack을 사용하여 작성된 소스 코드는 어떤 작업을 하고 있는지 좀 더 직관적으로 알 수 있습니다. 또한 의도하지 않은 동작을 지시하거나 실수로 코드를 잘못 작성하는 경우가 발생하지 않게 됩니다.

std::stackstd::deque으로 만든 간단한 래퍼로서 스택 자료 구조에서 꼭 필요한 인터페이스만을 제공합니다. 이러한 방식으로 만들어진 것을 컨테이너 어댑터(container adaptor)라고 합니다. C++에서 제공하는 컨테이너 어댑터는 std::stack, std::queue, std::priority_queue가 있습니다. 이제부터 각각에 대해 간략히 살펴보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.