STL - 18 (deque - 2)

Youngmin Choi·2021년 6월 24일
0

STL

목록 보기
18/34
post-thumbnail

1. 덱(deque)의 특징

  • 크기가 가변적이다!
    리스트(List)와 같이 데이터를 담을 수 있는 크기가 가변적이다.
  • 앞과 뒤에서 삽입과 삭제가 좋다!
    덱(Deque)이 다른 자료구조와 가장 다른 점으로 앞과 뒤에서 삽입,삭제가 좋다.
  • 중간에 데이터 삽입, 삭제가 용이하지 않다.
    데이터를 중간에 삽입하거나 삭제하는 것은 피해야 한다. 삽입과 삭제를 중간에 한다면 삽입하거나 삭제한 위치 앞 뒤 데이터를 모두 이동해야 한다. (배열의 단점과 동일)



  • 구현이 쉽지 않다.
    덱(Deque)은 스택(Stack)과 큐(Queue)가 결합된 자료구조로 연결리스트보다 구현하기 어렵다..!
  • 랜덤 접근이 가능하다!
    연결리스트처럼 리스트(List)를 탐색하지 않고 원하는 요소에 바로 접근할 수 있다!

2. 덱(deque)을 사용하는 이유

덱(deque)의 특징을 고려할 때 다음과 같은 경우에 사용하면 좋다!

  • 앞과 뒤에서 삽입, 삭제를 해야한다.
    덱(deque)을 사용하는 가장 큰 이유이다. 대부분 작업이 데이터를 앞이나 뒤를 삽입, 삭제를 한다면 STL컨테이너 라이브러리 중에서 덱(deque)을 사용할 때 성능이 가장 좋다!
  • 저장할 데이터 개수가 가변적이다.
    저장할 데이터 개수를 미리 알 수 없어도 덱(deque)은 크기가 동적으로 변하므로 유연하게 사용할 수 있다.
  • 검색을 거의 하지 않는다.
    많은 데이터를 저장한다면 'map, set, hash_map' 중 하나를 선택해서 사용하는 편이 좋다.
  • 데이터 접근을 랜덤하게 하고 싶다.
    벡터(vector)와 같이 랜덤 접근이 가능하다. 사용하는 방법도 같다.
profile
Always, Continually, In all circumstance

0개의 댓글