2017-12-09 13 views
0

ちょっとハッシュテーブルをC++のパラメータとして渡そうとしていますが、実行しようとしている関数を呼び出すときに、わからないエラーメッセージが表示されます。要約データ型パラメータとして渡す

だから、これは関数です:

string getRandomKey(int tableNumber, int tableSize, HashTable<string>* table, int random){ 
    random *= rand() % tableSize + 1; 
    string randKey = to_string(tableNumber) + to_string(random); 

    if((table->find(randKey)) == true){ 
     cout << "Key: " << randKey << " found "; 
     return randKey; 
    } 
    return ""; 
} 

これは決して、私はちょうどそれをテストしようとしている最後のバージョンです。いくつかの文脈では、私は2つのハッシュテーブルと、私が決めた要素の数を持つ別の整数変数を持っているということです。キーは乱数の1つに設定されます。

table1->print(getRandomkey(1, sizes[2], table1*, 1)); 

そして、私はこのエラーを取得する:私は関数を呼び出すところとにかく

ので、ここでは

error: expected expression 
    table1->print(getRandomKey(1, sizes[2], table1*, 1)); 
               ^
1 error generated. 

だから、私は私が台無し場合、私は変更する必要があるかわからないんだけどどこか他のところに何かがある。皆さんに助けていただきありがとうございます!

+0

'table11'とは何ですか?それは 'HashTable *'ですか?それとも 'HashTable **'ですか?おそらく、あなたはポインタとデリファレンス演算子について[良い初心者の本や2を読んで](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)の時間を取るべきでしょうか? –

+0

また、ポインタの代わりに何を使用するのかa *参照*?テーブルを変更しないので、 'const'への参照が望ましい。 –

+0

テーブル1はハッシュテーブル *です。私は参考文献を忘れていましたが、それがうまくいくと思いますか? – Geedubs123

答えて

1

table1はHashTableへのポインタなので、 getRandomKeyを呼び出すと、table1 *という用語はtable1だけでなければなりません。

table1-> print(getRandomkey(1、sizes [2]、table1、1));

関連する問題