【问题标题】:Heaps in c++ using vectorsc++中使用向量的堆
【发布时间】:2015-01-30 16:48:09
【问题描述】:

最后一行是如何工作的?
它会创建最大堆还是最小堆?

int myints[] = {10,20,30,5,15};

std::vector<int> v(myints,myints+5);

std::make_heap (v.begin(),v.end());

【问题讨论】:

  • 你为什么不看看std::make_heap的文档?
  • 是否可以使用 make_heap 创建最小堆。我看到了文件,但我没有看到?
  • @PrashantGupta:我找到了一个 stackoverflow question 大约一个最小堆。

标签: c++ vector stl


【解决方案1】:

std::make_heap 是标准库中“堆”函数的一部分。它们都通过使用底层数据存储来工作。在您提供的情况下,您使用 std::vector 作为您的数据存储。

调用 std::make_heap 传递数据存储的范围将使其内容堆积,使第一个元素的值最大,并满足 std::push_heapstd::pop_head 的所有要求。

最后一行是如何工作的?它会做最大堆还是最小堆?

它在std::vector 提供的 (v) 中创建一个最大堆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多