-1

我正在尝试将 C++ 字符串转换为 cstring 或 char*。我希望始终调用带有 char* 的哈希函数(从字符串转换后)。我一直在看这个代码一个小时,也在搜索。没运气。

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 从 main 调用 char* 方法,而不是从 string 方法调用。有趣的。

4

1 回答 1

4

(按要求发布为答案)将哈希函数更改为int hash(char const* key, int i)

于 2014-11-27T03:27:53.857 回答