[C++ STL] Deque

Kim Sung Kyu·2021년 4월 17일
0

C++🚁

목록 보기
8/8
post-thumbnail

Deque

  • 연속적인 메모리를 기반으로 하는 순차 컨테이너
  • front, end에서 삭제와 삽입이 모두 가능
  • 임의 원소에 접근이 가능(인덱스 존재)
  • 크기가 가변적이기 떄문에 삽입할 때 크기 고려하지 않아도 됨

1. 생성

  • 헤더 파일
    #include <deque>

  • 생성
    deque<자료형> 변수명
    deque<자료형> 변수명(n)
    set<자료형> 변수명 = {원소1, 원소2, 원소3}

ex) deque<int> dq; , deque<int> dq(5);


2. 멤버 함수

종류상세설명
begin()시작 지점의 주소값 반환
end()끝 지점 주소값 반환(마지막 원소가 아니라 마지막 원소 다음)
front()첫 번째 원소
back()마지막 원소
at(i)i번째 원소
clear()모든 원소를 제거
push_front()첫번째 원소 앞으로 원소 삽입
push_back()마지막 원소 뒤에 새로운 원소 삽입
pop_front()앞에서 원소 삭제
pop_back()뒤에서 원소 삭제
empty()set s가 비어있는지 확인
insert(k, n)iterator가 가리키는 위치에 n 추가(가리키는 iterator 반환)
erase(k)iterator가 가리키는 원소 삭제
find(k)원소 k를 가리키는 반복자 반환 (없으면 s.end() 반환
size()사이즈 반환
resize(n)메모리 공간 크기를 n으로 변경

3. 예시

#include <iostream>
#include <deque>
using namespace std;

void main() {
	deque<int> dq;

	dq.push_back(2);
	dq.push_back(3);
	dq.push_front(1);

	for (int i = 0; i < dq.size(); i++) {
		cout << dq[i] << endl; // 1 2 3
	}

	dq.pop_back();
	dq.push_back(4);

	deque<int>::iterator iter;
	for (iter = dq.begin(); iter != dq.end(); iter++) {
		cout << *iter << endl; // 1 2 4
	}

	cout << dq.empty() << endl; // 0(false);

	dq.clear();

	cout << dq.empty() << endl; // 1(true);
}

참고

profile
꿈꾸던 내가 될꺼야😃

0개의 댓글