-1

C++ 文字列を cstring または char* に変換しようとしています。char* を受け取るハッシュ関数が常に呼び出されるようにしたい (文字列から変換した後)。私はこのコードを1時間見ていて、検索もしています。運がない。

char* a = "foo";
string b = "foo";

hash(a, 1); // calls the char* hash
hash(b, 1); // calls string hash

int hash(string key, int i){//STRING HASH
    char const* cstring = key.c_str();
    return hash(cstring, i);//should not be a recursive call but is
}

int hash(char* key, int i){//Cstring HASH
    //should get called here
    return hash(intKey, i);
}

これが十分に明確であることを願っています。長い一日でした!:-p

興味深いのは、char* a と char const* a が、string メソッドからではなく main から char* メソッドを呼び出していることです。面白い。

4

1 に答える 1

4

(リクエストによる回答として投稿)ハッシュ関数を次のように変更しますint hash(char const* key, int i)

于 2014-11-27T03:27:53.857 に答える