algorithm 02 make_heap
make_heap
make_heap()用于把一个可迭代容器变成一个堆,默认是大顶堆
第三个参数默认情况下为less<>(),less<int>()用于生成大顶堆。
greater<>()用于生成小顶堆 头文件#include <functional>
#include<iostream>
#include<vector>
#include<algorithm>
#include <queue>
#include <functional>
using namespace std;
int main(){
vector<int> q;
for (int i = 0; i < 10; i++) {
q.push_back(i);
}
make_heap(q.begin(), q.end(),less<int>());
for (int i = 0; i < q.size(); i++) {
cout << q[i] << " ";
}
return 0;
}
pop_heap
pop_heap()用于将堆的第零个元素与最后一个元素交换位置,然后针对前n - 1个元素调用make_heap()函数
----------------------------------------------------------------------------------------------------------------------------------------------
push_heap
push_heap()用于把数据插入到堆中,其意义与make_heap()的相同
push_heap()前,请确保已经把数据通过q.push_back()传入q中
------------------------------------------------------------------------------------------------------------------------------------------------
sort_heap
sort_heap()是将堆进行排序,排序后,序列将失去堆的特性(子节点的键值总是小于或大于它的父节点)
大顶堆sort_heap()后是一个递增序列,小顶堆是一个递减序列
分类:
c++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本