#inclue<deque>
-deque란?
vector와 같은 기능을 하는 자료구조이다.
vector와의 차이는 vector의 경우 insert시 용량이 다 하면 새로 동적할당 받고 기존은 데이터를 새로 할당 받은 메모 리 공간에 복사한다.
deque는 이러한 단점을 보완하기 위해 insert시 용량이 다 해도 공간을 늘리되 복사 작업을 하지 않는다.
vector와 아주 유사함으로 지원하는 함수도 거의 유사하다.
vector를 잘 모른다면 참고 https://zero-stone.tistory.com/22
-vector와의 차이
1)capacity , data , reserve 지원x
vector는 메모리의 연속적인 공간에 사상된다.
이와 반대로 deque는 연속적인 공간에 사상되지 안는다.
deque은 블록단위로 메모리를 할당 받고 블록들이 순차적으로 연결되지 안는다.
그렇기 때문에 deque는 capacity,reserve,data 함수를 지원하지 안는다.
이는 c++라이브러리에서 용량관리를 전적으로 알아서 지원한다는 뜻이다.
(이와 반대로 vector는 reserve를 통해 사용자가 용량 조절 가능 )
또한 deque는 블록들이 순차적으로 연결되있지 않기 때문에 포인터 연산은 절대 불가하기에 data함수를 지원하지 안 는다.
(vector는 포인터로 원소 접근 가능)
<그림의 chunk가 block이라 생각하면된다.>
2) pop_front push_front 함수가 있다.
deque는 맨 앞,맨 뒤, 중간의 삽입,삭제를 지원
vector는 맨 뒤, 중간의 삽입,삭제를 지원
'알고리즘&자료구조 > c++ stl 정리' 카테고리의 다른 글
c++ stl Container 사용법 정리 (0) | 2021.09.11 |
---|---|
C++ STL Sequence Container (0) | 2021.09.10 |
c++ forward_list (0) | 2021.09.10 |
c++ list (stl) (2) | 2021.09.10 |
c++ vector (0) | 2021.09.10 |