필자는 항상 배열을 사용하여 항목을 위쪽으로 푸시하기위한 알고리즘을 작성할 수 있지만 나중에 스택을 사용하는 것이 더 효율적이고 간단 할 수 있습니다. 이 기능을 검색했지만 찾지 못했습니다.C++ 스택 맨 아래에 추가하는 기능이 있습니까?
답변
std::stack
은 컨테이너 어댑터 인 입니다. 컨테이너 자체는 아닙니다. 즉, 사용자 정의 된 기본 컨테이너 상단에 스택 인터페이스 (스택 상단에 밀어 넣기 및 팝업 만 제공)을 적용하여 push_back()
, pop_back()
및 back()
기능을 제공합니다. 기본적으로 std::stack
은 기본 컨테이너로 std::deque
을 사용하지만 std::vector
및 std::list
은 표준 컨테이너이며 요구 사항을 충족합니다. 대부분의 경우 std::vector
이 더 나은 선택입니다. std::deque
가능성이 최고의 선택입니다 -
효율적 것을 지원하는 컨테이너를 사용 단지 바로 다음 스택의 다른 쪽 끝으로 밀어 수 있도록하려면
.'std :: deque'는이'std :: stack' 전에 들어 본 적이없는 무언가였습니다. 'std :: deque'는 아마 내가 사용하게 될 것입니다. 스택을 필요로합니다. – Derconug
std::stack
은 FILO 데이터 컨테이너입니다. 뒷면에 추가하면 뒷면에서 제거 할 수 있습니다. 다른 작업을 수행해야하는 경우 std::stack
이 아닌 컨테이너를 사용해야합니다.
std::deque::push_back
및 std::deque::push_front
데이터 구조의 "위쪽"및 "아래쪽"에 일정 시간 동안 요소를 각각 밀어 넣는 방법을 제공합니다.
달성하고자하는 것을 그릇된 용기로 사용하고있는 것 같습니다. deque가 더 잘 맞는 것 같습니다.
- 1. 레이아웃을 listview의 맨 아래에 추가하는 방법은 무엇입니까?
- 2. C#의 다른 맨 아래에 TIFF 이미지를 추가하는 방법은 무엇입니까?
- 3. 테이블보기 맨 아래에 단추 추가
- 4. C# 목록 - 목록 맨 아래에 추가
- 5. 맨 아래에 요소 정렬
- 6. C#에서 스택 맨 위에없는 스택 항목을 제거하는 방법
- 7. 내 양식 div가 맨 아래에 있습니까?
- 8. 왜이 페이지의 맨 아래에 내 제쳐두고 있습니까?
- 9. 전체 화면 모드에서 맨 아래에 메뉴를 추가하는 방법은 무엇입니까?
- 10. TableViewController 맨 아래에 UIDatePicker 배치
- 11. tableview 맨 위에보기가 아래에 표시됩니다.
- 12. PHP : 맨 아래에 변수를 읽으십시오
- 13. 뷰 계층 구조의 맨 아래에 서브 뷰를 추가하는 방법
- 14. n SQL 스크립트 맨 아래에 텍스트를 쓰거나 추가하는 방법은 무엇입니까?
- 15. QTreeView 맨 아래에 스크롤 가능 공백을 추가하는 방법
- 16. 화면 맨 아래에 kGADAdSizeSmartBannerLandscape를 넣으십시오.
- 17. div의 맨 아래에 이미지를 표시해야합니다
- 18. 이미지를 맨 아래에 정렬하는 방법
- 19. 다른 div의 맨 아래에 div를두기
- 20. 링크 된 목록 스택 맨 아래가 아님
- 21. Drupal Captcha가 맨 위 및 맨 아래에 표시되지 않습니까?
- 22. 버튼이 맨 아래에 있고 다른 버튼이 맨 위에있는 이유는 무엇입니까?
- 23. android - adview가 listView의 맨 아래에 비어 있습니다.
- 24. qt C++ mainwindow 항상 맨 아래에 맥 osx
- 25. C++은 템플릿의 헤더 맨 아래에 #include를 포함하는 이유는 무엇입니까?
- 26. 여백이 0 임에도 DIV 맨 위와 맨 아래에 틈새가 있습니다.
- 27. 화면 맨 아래에 행을 붙여 넣으십시오.
- 28. 테이블 뷰 인덱스가 맨 아래에 잘립니다.
- 29. 고정 위치의 맨 아래에 위치 요소 div
- 30. 마커 아래에 Google지도 페그 맨 놓기
'std :: deque'는 어떻게 사용합니까? – 6502
해당 데이터 구조의 정의를 사용하여 스택 맨 아래로 이동할 수 없습니다. 대신 이중 종료 대기열을 사용하십시오. –