deque란?
- vector를 보완하기 위한 컨테이너
- 배열기반 구조
- 여러개의 메모리 블록에 나뉘어 저장 (vector의 단점 보완)
*메모리가 부족 할때 마다 새로운 메모리를 만들어서 복사하는 vector와 달리
일정한 크기의 새로운 메모리 블록을 할당함으로 복사 과정을 하지않는다.
deque 사용법
헤더
-#include<deque>
-선언 방법
deque<데이터 타입> 디큐 이름; |
deque<데이터 타입> 디큐 이름(크기); |
deque<데이터 타입> 디큐 이름(크기,초기화 상수); |
deque<데이터 타입> 디큐 이름 = {a,b,c,d,e..}; |
-삽입, 삭제
dq.push_back(데이터); | 데이터 맨끝에 삽입 |
dq.push_front(데이터); | 데이터 맨앞에 삽입 |
dq.insert(데이터위치, 데이터); | 삽입하고 싶은 위치에 데이터 삽입 |
dq.pop_front(); | 데이터 맨앞에 삭제 |
dq.pop_back(); | 데이터 맨끝에 삭제 |
dq.erase(데이터위치); | 삭제하고 싶은 위치 데이터 삭제 |
총 코드
#include<deque>
#include<iostream>
using namespace std;
int main()
{
deque<int> dq1;
deque<int> dq2(10);
deque<int> dq3(10, 3);
deque<int> dq4 = { 1,2,3,4,5 };
for (auto i : dq2)
cout << i << ", ";
cout << endl;
for (auto i : dq3)
cout << i << ", ";
cout << endl;
for (auto i : dq4)
cout << i << ", ";
cout << endl;
dq2.push_back(8);
dq2.push_back(9);
dq2.push_back(10);
dq2.push_front(3);
dq2.push_front(2);
dq2.push_front(1);
dq2.insert(dq2.begin()+5, 6);
for (auto i : dq2)
cout << i << ", ";
cout << endl;
dq2.pop_front();
dq2.pop_front();
dq2.pop_back();
dq2.pop_back();
dq2.erase(dq2.begin()+3);
for (auto i : dq2)
cout << i << ", ";
}
'프로그래밍 공부 > STL' 카테고리의 다른 글
문자열 처리함수 c_str() (0) | 2022.02.27 |
---|---|
C++ STL set & multiset (0) | 2022.02.17 |
C++ STL list 란? (0) | 2022.02.15 |
STL vector 란? (0) | 2022.02.13 |
C++ STL 이란? (0) | 2022.02.12 |