STL - 19 (deque - 3)

Youngmin Choi·2021년 6월 24일
0

STL

목록 보기
19/34
post-thumbnail

1. 덱(deque) vs 벡터(vector)

덱(deque)은 전체적으로 멤버 함수의 기능이나 사용방법이 벡터(vector)와 거의 같다. 벡터(vector)는 삽입과 삭제를 뒤에서만 해야 성능이 좋지만, 덱(deque)은 삽입, 삭제를 앞과 뒤에서 해도 좋으며 앞과 뒤 삽입, 삭제 성능도 벡터(vector)보다 좋다. 하지만 덱(deque)은 앞뒤에서 삽입, 삭제하는 것을 제외한 다른 위치에서의 삽입과 삭제는 벡터(vector)보다 성능이 좋지 않다.

  • 덱(deque)과 벡터(vector)를 비교할 때 고려할 점
  1. 덱(deque)은 앞과 뒤에서 삽입, 삭제 성능이 벡터(vector)보다 상대적으로 좋다.
  2. 덱(deque)은 앞과 뒤에서 삽입, 삭제를 제외한 기능은 벡터(vector)보다 성능이 좋지 못하다.

  • 게임 서버에서 덱(deque)을 사용하는 경우 :
    게임 서버는 클라이언트에서 보낸 패킷을 차례대로 처리한다. 서버에서 네트워크 데이터를 받는 함수에서 데이터를 받으면 패킷으로 만든 후 받은 순서대로 순차적으로 처리한다. 이렇게 순차적으로 저장한 패킷을 처리할 때는 덱(deque)이 가장 적합한 자료구조이다. 왜냐하면 네트워크에서 데이터를 받아 패킷으로 만들어 저장하고, 그 패킷을 처리하는 부분은 게임 서버의 성능 면에서 가장 중요한 부분이므로 덱(deque)보다 더 빠르게 처리하기를 원한다. 따라서 독자적인 자료구조를 만들어 사용한다. 다시 말해 범용성보다는 성능을 우선시한다!

2. 덱(deque) 사용방법

  • 덱(deque)을 사용하려면 덱(deque) 헤더파일을 포함한다.
    #include < deque >


    원 형 :
    deque< 자료형 > 변수이름;
    deque< int > deque1;


    deque< 자료형 > 변수이름 = new deque< 자료형 >;
    deque< int >
    deque1 = new deque< int >;


    덱(deque) 멤버 중 일반적으로 자주 사용하는 멤버에서 벡터(vector)에 없는 pop_front와 push_front가 있다는 것 빼고는 벡터(vector)의 기능과 같다.



profile
Always, Continually, In all circumstance

0개의 댓글