728x90
Deque는 Double-end Queue로 배열과 유사하지만 벡터와는 달리 양쪽 끝에서 삽입과 삭제가 가능하다
Doubly Linked List에 배열의 요소가 들어가 있다고 생각하면 이해하기 편하다.
Deque의 ADT는
push_back() : 뒤쪽에 data 추가
push_front() : 앞쪽에 data 추가
pop_back() : 뒤쪽의 data 삭제
pop_front() : 앞쪽의 data 삭제
at() : 인덱스를 통해 접근
operator[] : 배열과 같이 인덱스를 통해 접근
resize() : 크기 조절
size() : 원소의 개수 return
empty() : 비어있는지 확인
아래는 사용 예시이다.
#include <iostream>
#include <deque>
using namespace std;
int main() {
// 덱 생성
deque<int> myDeque;
// 덱에 원소 추가
myDeque.push_back(1);
myDeque.push_back(2);
myDeque.push_front(0);
myDeque.push_front(-1);
// 덱의 크기 출력
cout << "Deque size: " << myDeque.size() << endl;
// 덱의 원소 출력
cout << "Deque elements: ";
for (const auto& elem : myDeque) {
std::cout << elem << " ";
}
cout <<"\n";
// 덱의 앞과 뒤에서 원소 제거
myDeque.pop_front();
myDeque.pop_back();
// 변경된 덱의 크기와 원소 출력
cout << "Updated deque size: " << myDeque.size() << "\n";
cout << "Updated deque elements: ";
for (const auto& elem : myDeque) {
cout << elem << " ";
}
cout << "\n";
return 0;
}
728x90
'Data_structure' 카테고리의 다른 글
(Data_Structure) Priority Queue (1) | 2023.12.07 |
---|---|
(Data_Structure) Vector (2) | 2023.12.07 |
(Data_structure) Queue (1) | 2023.12.07 |
(Data_Structure) BFS (Breadth-First Search) (1) | 2023.12.07 |
(Data_Structure) DFS (Depth-First Search) (0) | 2023.12.07 |