[책] 뇌를 자극하는 C++ STL - 컨테이너 어댑터 (stack, queue, priority_queue)

Kim Yuhyeon·2023년 9월 5일
0

C++

목록 보기
24/25

컨테이너 어댑터


다른 컨테이너의 인터페이스를 변경한 컨테이너

stack

LIFO 방식의 컨테이너를 구현한 템플릿 클래스

선언

  • 헤더파일
#include <stack>  
  • 선언
stack<데이터 타입> 이름;
// ex.
stack<int> s;

stack<데이터 타입, 컨테이너 타입> 이름;
// 기본 컨테이너 타입 : deque<T>
// ㄴ empty(), size(), push_back(), pop_back(), back() 등의 인터페이스를 제공하는 컨테이너여야함. 
// ㄴ vector, deque, list 사용 가능 
// ex.
stack<int, list<int>> q;

멤버 함수

  • 원소가 없는지? : bool empty() const
  • 원소 개수 : size_type size() const
  • 원소 추가 : void push(const value_type& x)
  • 원소 제거 : void pop()
  • (const 객체) Top 원소 : (const) value_type& top() (const)

연산자

  • ==
  • !=
  • <
  • >
  • <=
  • >=

queue

FIFO 방식의 컨테이너를 구현한 템플릿 클래스

선언

  • 헤더파일
#include <quque>  
  • 선언
quque<데이터 타입> 이름;
// ex.
quque<int> q;

quque<데이터 타입, 컨테이너 타입> 이름;
// 기본 컨테이너 타입 : deque<T>
// ㄴ empty(), size(), push_back(), pop_front(), front() 등의 인터페이스를 제공하는 컨테이너여야함. 
// ㄴ deque, list 사용 가능
// ex.
quque<int, list<int>> q;

멤버 함수

  • 원소가 없는지? : bool empty() const
  • 원소 개수 : size_type size() const
  • 원소 추가 : void push(const value_type& x)
  • 원소 제거 : void pop()
  • (const 객체) 첫 원소 : (const) value_type& front() (const)
  • (const 객체) 마지막 원소 : (const) value_type& back() (const)

연산자

  • ==
  • !=
  • <
  • >
  • <=
  • >=

priority_queue

특정 정렬 기준으로 원소의 우선순위가 결정된다.
내부적으로 STL의 힙 알고리즘인 make_heap() , push_heap() , pop_heap()을 사용하여 구현되어 있다.

선언

  • 헤더파일
#include <quque>  
  • 선언
priority_queue<데이터 타입> 이름;
// ex.
priority_queue<int> pq;


priority_queue<데이터 타입, 컨테이너 타입, 정렬 기준> 이름;
// 기본 컨테이너 타입 : vector<T>
// ㄴ 임의 접근 반복자를 제공하는 컨테이너이다. 
// ㄴ empty(), size(), push_back(), pop_back(), front() 등의 인터페이스를 제공하는 컨테이너여야함. 
// ㄴ deque, vector 가능
// 기본 정렬 기준 : less<T>
// ex. 
priority_queue<int, deque<int>, greator<int>> pq;

0개의 댓글