C++:二进制堆

C++: Binary Heap

本文关键字:二进制 C++      更新时间:2023-10-16

我正在研究二进制堆的C++实现,但在开始时遇到了一些问题。以下是我的代码片段:

class binaryHeap {
public:
    // Constructor
    binaryHeap(int _capacity)
    {
        // initializes the binary heap with a capacity, size, and space in memory
        _size = 0;
        _n = ceil(pow(2, log10(_capacity)/log10(2)));
        _heap = new int[_n];
    }
    ~binaryHeap(void)
    {
        delete[] _heap;
    }
/* Omitted: insert, remove, size, capacity functions
   Not necessary to the issue I'm having */
private:
    int _size;
    int _capacity;
    int _n;
    int *_heap;
};

在main.cpp文件中,当我写下以下行时:

struct BinaryHeap heap(10);

我得到错误:变量的类型"structBinaryHeap"不完整。你知道是什么原因造成的吗?

我认为这是一个拼写错误问题。你的二进制堆类是binaryHeap,而在main函数中,你说的是struct BinaryHeap heap(10);,在编译器的POV中是一个完全不同的类型。