728x90
deque 생성
- deque a;
deque a 생성 - deque a(n);
크기가 n인 deque a 생성 - deque a(n, m);
크기가 n이고 값이 m으로 초기화된 deque a 생성 - deque b; and deque a(b);
deque b의 값을 가진 deque a 생성
deque 멤버 함수
- a[idx];
vector처럼 idx로 원소 접근 가능 - a.front();
배열의 첫 번째 원소를 참조 - a.back();
- 배열의 마지막 원소를 참조
- a.pop_front();
배열의 첫 번째 원소를 제거 - a.pop_back();
배열의 마지막 원소를 제거 - a.push_front(n);
배열의 앞에 원소 n 삽입 - a.push_back(n);
배열의 뒤에 원소 n 삽입 - a.size();
배열의 크기를 리턴 - a.clear();
배열의 모든 원소 제거 - a.empty();
deque a가 비어있을 경우 true 리턴 아니면 false 리턴 - a.insert(n, m);
배열의 n번 인덱스에 m값을 삽입 - a.erase(n);
deque의 n의 위치의 원소를 제거
deque 특징
vector와 유사한 기능을 가지고 있지만 vector의 경우 첫번째 원소를 제거하거나 삽입할 때 시간 복잡도가 O(n)이지만 deque는 시간 복잡도가 O(1)이다.
deque 사용 예시
#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> numbers;
numbers.push_back(3);
numbers.push_back(4);
numbers.push_back(5);
numbers.push_front(2);
numbers.push_back(1);
// 앞에서부터 원소 출력
cout << "Forward: ";
for (int num : numbers) {
cout << num << " ";
}
cout << endl;
// 뒤에서부터 원소 출력
cout << "Reverse: ";
for (auto it = numbers.rbegin(); it != numbers.rend(); ++it) {
cout << *it << " ";
}
cout << endl;
// 첫 번째 원소 제거 후 출력
numbers.pop_front();
cout << "After pop_front(): ";
for (int num : numbers) {
cout << num << " ";
}
cout << endl;
// 마지막 원소 제거 후 출력
numbers.pop_back();
cout << "After pop_back(): ";
for (int num : numbers) {
cout << num << " ";
}
cout << endl;
return 0;
}
실행 결과 :
Forward: 2 3 4 5 1
Reverse: 1 5 4 3 2
After pop_front(): 3 4 5 1
After pop_back(): 3 4 5
728x90