2016-08-12 2 views
1

필자는 항상 배열을 사용하여 항목을 위쪽으로 푸시하기위한 알고리즘을 작성할 수 있지만 나중에 스택을 사용하는 것이 더 효율적이고 간단 할 수 있습니다. 이 기능을 검색했지만 찾지 못했습니다.C++ 스택 맨 아래에 추가하는 기능이 있습니까?

+6

'std :: deque'는 어떻게 사용합니까? – 6502

+6

해당 데이터 구조의 정의를 사용하여 스택 맨 아래로 이동할 수 없습니다. 대신 이중 종료 대기열을 사용하십시오. –

답변

0

std::stack은 컨테이너 어댑터 인 입니다. 컨테이너 자체는 아닙니다. 즉, 사용자 정의 된 기본 컨테이너 상단에 스택 인터페이스 (스택 상단에 밀어 넣기 및 팝업 만 제공)을 적용하여 push_back(), pop_back()back() 기능을 제공합니다. 기본적으로 std::stack은 기본 컨테이너로 std::deque을 사용하지만 std::vectorstd::list은 표준 컨테이너이며 요구 사항을 충족합니다. 대부분의 경우 std::vector이 더 나은 선택입니다. std::deque 가능성이 최고의 선택입니다 -

효율적 것을 지원하는 컨테이너를 사용 단지 바로 다음 스택의 다른 쪽 끝으로 밀어 수 있도록하려면

.

+0

'std :: deque'는이'std :: stack' 전에 들어 본 적이없는 무언가였습니다. 'std :: deque'는 아마 내가 사용하게 될 것입니다. 스택을 필요로합니다. – Derconug

0

std::stack은 FILO 데이터 컨테이너입니다. 뒷면에 추가하면 뒷면에서 제거 할 수 있습니다. 다른 작업을 수행해야하는 경우 std::stack이 아닌 컨테이너를 사용해야합니다.

0

달성하고자하는 것을 그릇된 용기로 사용하고있는 것 같습니다. deque가 더 잘 맞는 것 같습니다.

관련 문제