小编Vis*_*uck的帖子

自定义堆中的分段错误

它甚至不执行推送操作。它不调用推送函数,只是构造函数调用和分段错误。为什么会这样?

class Heap {
    vector<int> v;

     void Heapify(int x) {
        int mi = x;
        int l = 2 * x;
        int r = 2 * x + 1;

        if (v[mi] > v[l] && l < v.size()) {
            mi = l;


        }
        if (v[mi] > v[r] && r < v.size()) {
            mi = r;
        }

        if (mi != x) {
            swap(v[mi], v[x]);
            Heapify(mi);
        }
                       }
public:
    Heap() {

        v[0] = -1;
    }
    void push(int x) {

        v.push_back(x);
        int i = v.size()-1; …
Run Code Online (Sandbox Code Playgroud)

c++ heap priority-queue c++11

0
推荐指数
1
解决办法
94
查看次数

标签 统计

c++ ×1

c++11 ×1

heap ×1

priority-queue ×1