저는 C++에 매우 익숙합니다. 표준 라이브러리에서 C++로 min heap을 만드는 방법이 있는지 궁금합니다.C++에서 min 힙을 만드는 쉬운 방법이 있습니까?
답변
std::make_heap
, std::push_heap
및 기타를 직접 사용할 수도 있고 std::vector
또는 이와 유사한 방법으로 std::priority_queue
을 사용할 수도 있습니다.
std::*_heap
방법 <algorithm>
에 있으며 std::priority_queue
템플릿 <queue>
이다.
명확히하기 :'priority_queue
오, 그래서 내가 C에서 priority_queue에서 터지면 + + 내가 최소 값을 얻을 줄 알아요? – Alex
'priority_queue'의 전체 템플릿은 컨테이너 타입을 받아들입니다. 기본값은'vector
<algorithm>
에 정의 된 make_heap()
및 친구를 사용하거나 <queue>
에 정의 된 priority_queue
을 사용하십시오. priority_queue
은 make_heap
및 아래에 친구를 사용합니다.
#include <queue> // functional,iostream,ctime,cstdlib
using namespace std;
int main(int argc, char* argv[])
{
srand(time(0));
priority_queue<int,vector<int>,greater<int> > q;
for(int i = 0; i != 10; ++i) q.push(rand()%10);
cout << "Min-heap, popped one by one: ";
while(! q.empty()) {
cout << q.top() << ' '; // 0 3 3 3 4 5 5 6 8 9
q.pop();
}
cout << endl;
return 0;
}
+1 (미묘하게)은'priority_queue'가 최대 힙이라는 것을 지적합니다. – avakar
- 1. WPF에서 "탭 구분"버튼을 만드는 쉬운 방법이 있습니까?
- 2. .net에서 레지스트리 휘발성 하위 키를 만드는 쉬운 방법이 있습니까?
- 3. flex preloader를 숨기는 쉬운 방법이 있습니까?
- 4. C에서 임의 함수 시간 초과를 만드는 방법이 있습니까?
- 5. 구조체 멤버를 C에서 어떻게 든 '비공개'로 만드는 방법이 있습니까?
- 6. C++ 클래스의 자동 완성 - 쉬운 방법이 있습니까?
- 7. SQLite로 데이터를 가져 오는 쉬운 방법이 있습니까?
- 8. @Transactional과 로깅을 결합하는 쉬운 방법이 있습니까?
- 9. Windows의 PHP -> AS400에는 쉬운 방법이 있습니까?
- 10. backgroundrb를 서버로 시작하는 쉬운 방법이 있습니까?
- 11. System.Data.DataTable을 linq 엔터티로 변환하는 쉬운 방법이 있습니까?
- 12. 자바에서 문자열을 Inetaddress로 변환하는 쉬운 방법이 있습니까?
- 13. IntelliJ Idea에 scaladoc을 통합하는 쉬운 방법이 있습니까?
- 14. EntityFramework에서 SQL 기본값을 사용하는 쉬운 방법이 있습니까?
- 15. NSArray를 거꾸로 반복하는 쉬운 방법이 있습니까?
- 16. 복제 기사가 올바른지 확인하는 쉬운 방법이 있습니까?
- 17. XCode의 클래스에 속성을 추가하는 쉬운 방법이 있습니까?
- 18. ScrollableControl.ScrollControlIntoView 메서드에 애니메이션을 적용하는 쉬운 방법이 있습니까?
- 19. 재귀 HiddenFor를 수행하는 쉬운 방법이 있습니까?
- 20. C#에서 웹캠에 액세스하는 쉬운 방법이 있습니까?
- 21. 이전에 활성 분기로 변경하는 쉬운 방법이 있습니까?
- 22. C# 클래스를 PHP로 변환하는 쉬운 방법이 있습니까?
- 23. 비슷한 XML 파일을 deserialize하는 쉬운 방법이 있습니까?
- 24. gcc가 crtbegin.o/crtend.o를 생략하도록하는 쉬운 방법이 있습니까?
- 25. Hoptoad를 CakePHP와 함께 사용하는 쉬운 방법이 있습니까?
- 26. BJ concurency를 처리하는 쉬운 방법이 있습니까
- 27. jQuery 아코디언을 사용하면 더 쉬운 방법이 있습니까?
- 28. C에서 쉬운 WinAPI 그리드가 필요합니다.
- 29. Sourcesafe로 CI를 만드는 방법이 있습니까
- 30. Android에서 캘린더를 만드는 방법이 있습니까?
질문을하고 받아 들일 수 없습니다. 습관이나 선택에 의한 행동입니까? – Siddharth