덱
Coddy의 C++ - 표준 템플릿 라이브러리 코스 레슨. 23개 중 6번째.
Deque는 C++의 시퀀스 컨테이너로, double-ended queue라고도 불립니다. 일반적인 큐(queue)에 대해서는 나중에 컨테이너 어댑터(Container Adaptors) 장에서 배우게 될 것입니다. 하지만 지금은 일반적인 큐에서는 요소가 뒤(back)에서 삽입되고 앞(front)에서 제거된다는 점을 알아두어야 합니다. 반면, deque에서는 앞(front)과 뒤(back) 양쪽 모두에서 요소를 삽입하고 제거할 수 있습니다.

우리는 .cpp 파일 상단에 #import <deque>를 사용하여 라이브러리를 포함함으로써 deque 데이터 구조를 구현합니다 (bits/stdc++.h 헤더 파일을 포함하여 deque에 액세스할 수도 있습니다).
다음으로, 아래와 같은 구문으로 deque를 생성합니다:
deque<data_type> deque_name;먼저, deque 키워드를 사용합니다. 둘째, deque 내부에 저장하려는 변수 타입을 넣고 마지막으로 deque 변수 이름을 지정합니다.
deque<int> numbers;또한 vector 데이터 구조에서 사용했던 것과 동일한 구문으로 deque를 선언할 때 초기화할 수 있습니다:
deque<int> numbers = {1, 2, 3, 4, 5};
cout << numbers[0];Output:
1따라서, push_back() 메서드를 사용하여 deque의 뒤에서 요소를 삽입하고, push_front() 메서드를 사용하여 앞에서 요소를 삽입합니다.
deque<int> numbers = {2, 3};
numbers.push_front(1);
numbers.push_back(4);
for(int i = 0; i < numbers.size(); i++)
cout << numbers[i] << " ";Output:
1 2 3 4Deque 메서드
| 메서드 | 기능 |
| push_back() | 뒤에 새로운 요소를 삽입합니다 |
| push_front() | 앞에 새로운 요소를 삽입합니다 |
| pop_back() | 뒤에서 요소를 제거합니다 |
| pop_front() | 앞에서 요소를 제거합니다 |
| size() | 요소의 개수를 반환합니다 |
| empty() | deque가 비어 있는지 여부를 반환합니다 |
| clear() | deque의 모든 요소를 제거합니다 |
챌린지
쉬움사용자는 -1을 입력할 때까지 양수를 입력합니다. 첫 번째 숫자는 앞(front)에, 두 번째 숫자는 뒤(back)에, 세 번째 숫자는 다시 앞에 넣는 식으로 번갈아 가며 각 숫자를 deque에 삽입합니다. 그 후, 반복문을 사용하여 deque를 순회하며 각 요소 사이에 공백을 하나씩 넣어 모든 요소를 출력합니다.
Input
5
10
15
20
25
30
-1Output
25 15 5 10 20 30직접 해보기
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}C++ - 표준 템플릿 라이브러리의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러