<덱 구조>
- double-ended queue의 줄임말로, 양쪽(앞, 뒤)에서 삽입, 삭제를 할 수 있는 구조이다.
큐의 없었던 기능을 추가했다고 볼 수 있다.
<헤더파일>
STL문법을 사용하기 위해서는 헤더 파일을 들고와야 하는데
다음과 같이 작성하면 헤더파일을 들고 올 수 있다.
#include <deque>
<덱 STL문법>
>>선언 하기
deque<자료형> (변수이름); 으로 선언할 수 있다.
#include <deque>
int main()
{
deque<int> dq;
}
>> 값 넣기(맨 앞)
dq.push_front(value);을 하면 deque에 value값이 들어간다.
이때, value의 값은 선언된 자료형과 동일하게 해야한다.
dq.push_front(1);
>> 값 넣기(맨 뒤)
dq.push_front(value);을 하면 deque에 value값이 들어간다.
dq.push_back(1);
>>값 꺼내기(맨 앞)
dq.pop_front();을 하면 deque에 맨 밑에 있는 값(처음으로 들어온 값)이 꺼내진다.
만약 deque이 비워져 있다면 stackoverflow의 에러가 발생한다.
dq.pop_front();
>>값 꺼내기(맨 뒤)
dq.pop_back();을 하면 deque에 맨 밑에 있는 값(처음으로 들어온 값)이 꺼내진다.
dq.pop_back();
>>앞에 있는 값 확인
dq.front();을 하면 deque에 맨 위에 있는 값을 출력한다.
만약 deque이 비워져 있으면 이때도 에러가 발생한다.
dq.front();
>>뒤에 있는 값 확인
dq.back();을 하면 deque에 맨 뒤에 있는 값(마지막으로 들어온)을 출력한다.
dq.back();
>> 크기 확인
dq.size();을 하면 현재 deque에 들어간 데이터 갯수를 반환한다.
dq.size();
>>비워져있는지 확인
dq.empty();을 하면 queue에 데이터가 없으면 true, 하나라도 들어있으면 false를 반환한다.
dq.empty();
'자료구조와 알고리즘' 카테고리의 다른 글
C++ 정렬 (0) | 2023.11.09 |
---|---|
시간 복잡도와 공간 복잡도 (0) | 2023.11.09 |
C++ 연결리스트 (0) | 2023.11.09 |
C++ 큐(queue) (0) | 2023.11.05 |
C++ Undefined behavior (0) | 2023.10.31 |