Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 관계형 모델
- DB
- 데이터베이스
- BST
- Transport layer
- 프로그래머스
- 릿코드
- 백준
- dp
- baekjoon
- Application Layer
- ps
- boot sequence
- 부트시퀀스
- 네트워크
- 다익스트라
- Network
- 임베디드
- Embedded
- Database
- 문제풀이
- leetcode
- Djikstra
- 응용 계층
- BHS
- STL
- 전송 계층
- swea
- 자료구조
- C++
Archives
- Today
- Total
BOBO's Note
Deque 본문
데크(Deque)는 Double-Ended QUEue의 줄임말로, 양쪽 끝에서 삽입/삭제가 가능한 자료구조이다.
C++
<deque>에 정의되어 있으며, 선형 배열 형태의 순차 컨테이너이다. 양쪽 끝에서의 삽입 및 삭제가 O(1)에 가능하다.
벡터는 연속된 공간에 메모리를 할당해 데이터를 순차적으로 저장하고, 공간이 부족하면 메모리를 재할당해 데이터를 복사한다. 이러한 재할당 오버헤드를 줄이기 위해 데크에서는 여러 개의 블록으로 쪼개어 저장한다. 따라서 포인터 연산을 통해 원소에 접근할 순 없지만, 인덱스를 통해 접근할 수는 있다.
대표적으로 다음과 같은 연산이 있다.
-
size(): 데크의 크기를 반환한다.
-
empty(): 데크가 비어있다면 true를, 그렇지 않은 경우 false를 반환한다.
-
front(): 데크의 맨 앞의 원소를 반환한다.
-
back(): 데크의 맨 뒤의 원소를 반환한다.
-
push_front(): 데크의 맨 앞에 원소를 추가한다.
-
pop_front(): 데크의 맨 앞의 원소를 제거한다.
-
push_back(): 데크의 맨 뒤에 원소를 추가한다.
-
pop_back(): 데크의 맨 뒤의 원소를 제거한다.
-
clear(): 데크의 모든 원소를 제거한다.
'C, C++ > STL' 카테고리의 다른 글
Associative Container (0) | 2020.06.24 |
---|---|
Tuple (0) | 2020.05.31 |
Priority Queue (0) | 2020.05.27 |
Comments