deque란?

- vector를 보완하기 위한 컨테이너

- 배열기반 구조

- 여러개의 메모리 블록에 나뉘어 저장 (vector의 단점 보완)

*메모리가 부족 할때 마다 새로운 메모리를 만들어서 복사하는 vector와 달리

일정한 크기의 새로운 메모리 블록을 할당함으로 복사 과정을 하지않는다.

 

deque 사용법

헤더

-#include<deque>

 

-선언 방법

deque<데이터 타입> 디큐 이름;
deque<데이터 타입> 디큐 이름(크기);
deque<데이터 타입> 디큐 이름(크기,초기화 상수);
deque<데이터 타입> 디큐 이름 = {a,b,c,d,e..};

deque 선언방법

-삽입, 삭제

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

+ Recent posts