使用std::make_heap可以輕松地創建一個堆。只需將要創建堆的序列傳遞給make_heap函數即可。以下是一個簡單的示例:
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> nums = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
// 使用make_heap創建一個最大堆
std::make_heap(nums.begin(), nums.end());
// 輸出堆中的元素
std::cout << "Heap elements:";
for (const auto& num : nums) {
std::cout << " " << num;
}
std::cout << std::endl;
return 0;
}
在上面的示例中,我們首先創建了一個包含一些數字的vector。然后使用std::make_heap(nums.begin(), nums.end())函數將該vector轉換為最大堆。最后輸出堆中的元素。
請注意,make_heap函數只能創建最大堆。如果您需要創建最小堆,可以使用std::greater
// 使用make_heap創建一個最小堆
std::make_heap(nums.begin(), nums.end(), std::greater<int>());