写下沉
补全 sift_down:让下标 i 上的元素一路往下沉到该去的位置。把堆顶换成 17 再沉一次,输出新的堆顶。 (本题用 g++ -std=c++17 -O0 编译。)
写弹出
补全 pop_top:取走堆顶、拿末尾补上、再下沉,返回取走的那个。补全后输出弹出来的值。 (本题用 g++ -std=c++17 -O0 编译。)
连弹两次第二次弹出谁
同一个 pop_top。连着弹两次,输出第二次弹出来的值。 (本题用 g++ -std=c++17 -O0 编译。)
默认的优先队列谁在顶上
priority_queue<int> 不加任何参数时,top() 拿到的是【0】。
怎么写出小根堆
第 1 步:同样的五个数依次进去 第 2 步:默认:大的先出来 第 3 步:写 greater<>:小的先出 第 4 步:方向和 sort 正好相反 24 23 17 15 13 13 15 17 23 24 想让 priori
比较器方向为何和 sort 反
sort 用 greater<> 排出从大到小,priority_queue 用它却是小的先出,原因是【0】。
默认 priority_queue 的顶
运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <utility> #include
加上 greater 之后的顶
运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <utility> #include
补全:写一个小根堆
补全 pq 的声明,让它变成小根堆,然后把五个数依次弹出,用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)
补全:按优先级的比较器
补全比较器 ByPrio:优先级大的先出;优先级相同,先进来的(seq 小的)先出。把出队顺序用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)