2016-03-29 8 views
-3

私はバイナリヒープのC++実装に取り​​組んでいますが、いくつか問題が起きています。ここに私のコードの抜粋です:main.cppにファイルで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; 
}; 

、私は次の行を書くとき:

struct BinaryHeap heap(10); 

を私はエラーを取得:変数は、不完全な型を持っている「構造体二分ヒープ」 。これを引き起こしているすべてのアイデア?

+0

C++を使っているなら、Cスタイルの配列の代わりに 'std :: vector'を使いたいかもしれません。また 'binaryHeap'または' BinaryHeap'ですか?後者はより一般的なC++です。 – tadman

+1

なぜ 'struct BinaryHeap heap(10);'を使用していますか?なぜ単に 'BinaryHeap heap(10);'を使わないのですか?第二に、タイプミスがあります。 – orezvani

答えて

2

これはタイプミスの問題だと思います。バイナリヒープクラスはbinaryHeapで、main関数ではstruct BinaryHeap heap(10);と表示されていますが、コンパイラのPOVでは完全に異なる型です。

+0

うわー、それは簡単だろう、ハハ。ありがとう! – TyCharm