반응형
Deque
- 헤더파일: #include <deque>
- Vector와 마찬가지로 배열 기반 컨테이너이다.
- vector와 큰 차이는 push_front()와 pop_front()이다.
- Queue 자료구조에서 FIFO (First In First Out)
- Stack 자료구조에서 LIFO (Last In First Out) 였다면
→ 덱(Deque)에서는 앞뒤로 push와 pop이 가능하다.
물론 vector에서도 insert()와 erase() 에서 인자를 통해 가능하지만 성능이 좋지 못하다.
- vector가 연속된 메모리에 원소가 저장된다면
deque는 여러 메모리 블록에 나눠 저장된다.
그래서 vector에서는 앞쪽에 원소를 넣으면 기존의 원소를 밀어야 하는 단점이 있다.
관련 함수
- push_back(val): 뒤쪽에 val 원소 추가
- pop_back(): 뒤쪽 원소 제거
- push_front(val): 앞쪽에 val 원소 추가
- pop_front(): 앞쪽에 원소 제거
- front(): 제일 앞쪽에 위치한 원소
- back(): 제일 뒤쪽에 위치한 원소
- assign(size, val): size 크기 만큼 {val} 값으로 원소 초기화
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> dq;
deque<int> dq2(3); // 크기 = 3 만큼 생성해서 "0" 으로 초기화
deque<int> dq3(5, 2); // 크기 = 5 만큼 생성해서 "1" 로 초기화
dq.push_front(2);
for (int i = 0; i < dq.size(); i++)
{
cout << dq[i] << " ";
}
cout << endl;
// ------------------------------------
dq2.push_back(6);
for (auto it : dq2)
{
cout << it << " ";
}
cout << endl;
// ------------------------------------
dq3.pop_front(); dq3.pop_back();
for (auto it : dq3)
{
cout << it << " ";
}
cout << endl;
// 크기 = 2 만큼 "3" 으로 초기화
dq3.assign(2, 3);
for (auto it : dq3)
{
cout << it << " ";
}
cout << endl;
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] [STL] Priority_queue (feat. 여러 기준으로 우선순위 큐 구현해보기) (0) | 2021.08.01 |
---|---|
[C++] [STL] List (0) | 2021.07.30 |
[C++] [STL] multiset (0) | 2021.07.30 |
[C++] [STL] Set (0) | 2021.07.29 |
[STL] unique 함수 활용한 vector 중복 원소 제거 (0) | 2021.07.29 |
댓글