基于迭代器的自定义堆函数
Custom heapify function based on iterators
我正在尝试创建一个适用于我的自定义容器的自定义(而不是使用 STL 一个)堆排序方法。我有迭代器,但是我找不到make_heap算法的描述。据我了解,它的作用类似于排列元素,使它们看起来像一个二进制堆,每个父节点旁边都有其两个子节点,但是子节点的子节点呢?它究竟是如何安排的?
调用 std::make_heap
后的元素顺序是实现定义的。唯一指定的是最大的元素放在范围的第一个。
我相信在最常见的实现中,如果一个节点存储在索引i
,那么它的左子节点存储在2*i+1
,右子节点存储在2*i+2
。
相关文章:
- C++自定义比较函数
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 将自定义函数传递到基抽象类中以延迟执行
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- 没有默认构造函数作为模板参数的自定义比较器
- Arduino:在 loop() 和自定义函数中运行相同的代码时出现问题
- C++ 通过函数传递自定义结构
- 将具有固定签名的自定义函数名称注入 CRTP
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 自定义排序函数中的堆溢出
- 使用 Google Test 对自定义断言函数进行单元测试
- 添加自定义析构函数时,Move 构造函数在派生类中消失
- 为 std::vector 编写自定义插入函数
- 自定义 std::fstream,std::filebuf 的溢出和下溢函数未为每个字符调用
- 如何在C++中允许成员函数的自定义返回类型进行类型擦除?
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- C++ 通过自定义赋值运算符隐式转换函数参数
- Tbb 库:错误:编写自定义类函数而不是 lambda 表达式时,对函数的调用不匹配
- 使用迭代器的自定义比较器函数
- 成员函数自定义类型在C++中返回"不命名类型"错误