본문 바로가기
C언어

deque 사용법 / push / pop / 삽입 / 삭제 / C++ 기초

by 여름코딩 2022. 12. 16.
반응형

안녕하세요 판타지 코딩입니다!

 

오늘은 deque에 대해서 알아보겠습니다.

 

 

deque는 queue와 비슷한 개념이어서 push, pop 으로 데이터를 삽입하고 삭제할 수 있습니다. 그런데 앞, 뒤에서 데이터를 저장하고 지울 수 있는 기능인 push_back, push_front 등의 기능을 지원합니다.

 

1. queue

 

먼저 queue를 선언하는 방법은 아래와 같습니다.

queue <int> q;

가장 앞에 queue를 선언하고, <> 안에 큐에 저장할 데이터의 자료형을 적고 마지막으로 큐의 이름을 작성합니다.

 

q.push(1);

push는 데이터를 저장하는 기능입니다.

 

q.pop();

pop을 하면 데이터를 삭제합니다. 그런데 queue는 선입 선출이라는 특성이 있으므로 가장 먼저 push한 데이터를 가장 먼저 pop 하게 됩니다.

 

예를 들어서 1, 2, 3을 차례대로 push 했다면, pop을 하면 1, 2, 3 순서대로 데이터가 나가게 됩니다.

 

그럼 데이터를 저장하기 위해서 queue를 활용하고 싶은데, 원하는 위치에서 데이터를 pop을 하려면 어떻게 해야될까요? 바로 deque를 활용하면 됩니다.

 

2. deque

 

deque는 push_front(), push_back(), pop_front(), pop_back()을 지원하기 때문입니다!

 

함수의 이름에서 역할이 예상 되시죠? 그럼 하나씩 예시를 들어서 설명드리겠습니다.

 

q.push_front(1)

q의 앞쪽에 1을 push합니다. 

 

q.push_back(1)

q의 뒷쪽에 1을 push합니다.

 

q.pop_front()

q의 앞쪽에 있는 데이터를 pop합니다.

 

q.pop_back()

q의 뒷쪽에 있는 데이터를 pop합니다.

 

q.push_front(1);

q.push_front(2);

이렇게 1과 2를 순서대로 push_front로 push하고 q를 출력해보면

 

2 1

 

이 순서로 출력됩니다. 앞쪽에 데이터를 push했으니, 마지막으로 앞쪽에 들어간 2가 가장 앞에 있게 됩니다.

 

그럼 여기서 q.pop_back(); 하게 된다면 뒤에 있는 데이터를 pop 해서 2만 남겠죠?

 

정리하자면, deque는 queue의 특성이 있고, queue의 앞 뒤에 데이터를 자유롭게 push하고 pop하기 위해서 활용합니다.

 

감사합니다!

반응형