我對C++很陌生,我想知道是否有一種方法可以從標準庫中製作C++的最小堆。有沒有一種簡單的方法可以在C++中創建最小堆?
回答
您可以直接使用std::make_heap
,std::push_heap
等,或者您可以使用建立在std::vector
或類似物上的std::priority_queue
。
std::*_heap
方法在<algorithm>
,而std::priority_queue
模板在<queue>
。
澄清:'priority_queue
哦,所以如果我從C++中的priority_queue彈出我會得到最小值? – Alex 2010-05-07 05:39:22
爲了進一步闡明,'priority_queue'的整個模板接受一個容器類型,默認爲'vector
使用make_heap()
和朋友,在<algorithm>
中定義或使用priority_queue
,在<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 2010-05-07 08:29:55
- 1. 有沒有一種簡單的方法來創建代碼TextBox?
- 2. 有沒有一種簡單的方法可以在rpy2中創建具有不同值長度的數據幀?
- 3. 有沒有一種方法,以創建具有在CSS
- 4. 有沒有一種簡單的方法在codeigniter上創建子域名?
- 5. 有沒有一種簡單的方法可以將Scaladoc集成到IntelliJ Idea中?
- 6. 有沒有一種簡單的方法來用Javascript創建動態變量?
- 7. 有沒有一種方法可以在Linux上使用C++
- 8. 有沒有一種方法可以提高我簡單的textfilter的性能?
- 9. 在Scala中創建最小堆的最簡單和最有效的方法是什麼?
- 10. 有沒有一種簡單的方法可以讓gcc忽略crtbegin.o/crtend.o?
- 11. 有沒有一種更簡單的方法可以使許多輸入相等?
- 12. 有沒有一種簡單的方法在C++ 0x中實現AutoResetEvent?
- 13. 有沒有一種簡單的方法在Node中從Mongo打開可讀流?
- 14. 有沒有一種簡單的方法從C中的字符串數組創建一個字符串?
- 15. 有沒有一種簡單的方法可以在Flutter測試中查找由RichText構建的特定文本?
- 16. 有沒有一種方法可以在沒有畫布的瀏覽器中使用JavaScript繪製簡單形狀?
- 17. 有沒有一種簡單的方法爲隨機大小的圖像創建一個動態網格系統?
- 18. 有沒有一種方法可以在iPhone SDK上創建覆蓋視圖?
- 19. 有沒有一種方法可以在創建類時自動調用函數
- 20. 有沒有一種簡單的方法來獲取objective-c/iPhone-OS中對象的創建者對象?
- 21. 有沒有一種簡單的方法來在沒有JavaScript的情況下在PHP中獲取圖像大小?
- 22. 有沒有一種方法可以在沒有os.chmod的* nix系統下使用Python創建可執行文件?
- 23. 有沒有一種方法可以在Polymer.js中使用Slick-Carousel?
- 24. 有沒有一種方法可以在Mongoose中進行投影?
- 25. 有沒有一種方法可以在模擬中配置Gatling?
- 26. 有沒有一種方法可以在python中輸入文字?
- 27. 有沒有一種方法可以有一個桶指針? (C/C++)
- 28. 在Javascript中,有沒有一種方法可以統計我創建了多少個創建的對象?
- 29. 有沒有一種簡單的方法可以從Mac上的C源文件生成一個.exe文件?
- 30. 有沒有一種簡單的方法,使工作
您提出問題並且不接受任何答案。這是習慣還是選擇? – Siddharth 2014-09-24 05:06:46