할머니의 콤퓨타 도전기

(STL) deque 사용법 본문

Program Language/C++

(STL) deque 사용법

ji.o.n.e 2020. 8. 3. 10:29

1. 덱(Deque) 이란?

  • double-ended queue
  • 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조 (queue + stack)

2. deque container 사용

  • 헤더파일 추가
  • 선언 : deque<[data type]> [변수 이름]

3. deque의 멤버 함수

(deque dq로 선언되어있다고 가정)

  • dq[idx] : idx 번째 원소 참조
  • dq.front() : 첫 번째 원소 참조
  • dq.back() : 맨 마지막 원소 참조
  • dq.clear() : 모든 원소 제거
  • dq.push_front(1) : dq의 첫 번째 원소 앞에 1 삽입
  • dq.pop_front() : dq의 첫 번째 원소 제거
  • dq.push_back(1) : dq의 마지막 원소 뒤에 5 삽입
  • dq.pop_back() : dq의 마지막 원소 제거
  • dq.begin() : dq의 첫 번째 원소 가리킴 (deque::iterator iter = dq.begin();)
  • dq.end() : dq의 마지막 원소의 ‘다음’을 가리킴 (deque::iterator iter = dq.end();)
  • dq.rbegin() : reverse begin, 맨 마지막 원소를 마치 첫 번째 원소처럼 가리킴 (역으로)
  • dq.rend() : reverse end, 맨 첫번째 원소의 ‘앞'을 마지막 원소의 ‘다음'처럼 가리킴
  • dq.resize(n) : 크기를 n으로 변경, 비어있는 원소를 0으로 초기화
  • dq.resize(n, 1) : 크기를 n으로 변경, 비어있는 원소를 1로 초기화
  • dq.size() : 원소의 개수 리턴
  • dq2.swap(dq1) : dq1과 dq2를 swap 함
  • dq.insert(3, 4) : 3번째 인덱스에 4의 값을 삽입, 삽입한 곳의 iterator 반환
  • dq.insert(1, 2, 3) : 1번째 위치에 2개의 3값을 삽입, 삽입 시에 앞뒤 원소 개수를 판단하여 적은 쪽으로 미루어 삽입
  • dq.erase(iter) : iter가 가리키는 원소를 제거, 제거한 곳의 iterator반환
  • dq.empty() : dq가 비어있으면 true, 그렇지 않으면 false
Comments