더북(TheBook)

덱 구조는 항공기 탑승 대기열과 같은 경우에 사용될 수 있습니다.

각각의 컨테이너마다 유일하게 다른 점은 성능과 메모리 요구 사항입니다. 덱은 데이터 맨 뒤뿐만 아니라 맨 앞에서도 매우 빠르게 원소를 삽입하거나 삭제할 수 있습니다. 데이터 중간에서의 삽입 또는 삭제에 대한 시간 복잡도는 벡터와 동일하지만, 실제로는 벡터보다 약간 빠르게 동작합니다.

std::vector와 마찬가지로 std::deque도 사용자 정의 할당자를 지정할 수 있습니다. 덱을 초기화할 때 템플릿 두 번째 매개변수에 할당자를 지정할 수 있습니다. 주의할 점은 할당자가 객체의 일부가 아니라 타입의 일부라는 점입니다. 이는 서로 다른 할당자를 사용하는 두 개의 벡터 또는 두 개의 덱 객체를 서로 비교할 수 없음을 의미합니다. 마찬가지로 서로 다른 할당자를 사용하는 객체에 대해 할당 또는 복사 생성자를 사용할 수도 없습니다.

지금까지 살펴본 바와 같이 std::deque은 앞 절에서 나왔던 컨테이너에 비해 다소 복잡한 구조를 가지고 있습니다. 그렇지만 std::deque은 매우 빠른 push_front()push_back() 동작과 효과적인 임의 접근을 제공하는 유일한 컨테이너입니다. 덱은 이제부터 설명할 몇몇 자료 구조의 구현을 위한 용도로도 사용됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.