我想实现一个哈希表示例。 所以为了这个目标,我创建了一个头文件,一个hash.cpp和main.cpp文件。 在我的hash.cpp中,我试图运行一个虚拟哈希函数,该函数获取键值并转换为索引值。但是,每当我尝试根据该哈希类创建一个对象时,它就会抛出一个错误(引用'hash'是不明确的)。
这是我的main.cpp:
#include "hash.h"
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>
using namespace std;
int main(int argc, const char * argv[]) {
hash hash_object;
int index;
index=hash_object.hash("patrickkluivert");
cout<<"index="<<index<<endl;
return 0;
}
这是我的hash.cpp:
#include "hash.h"
#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>
using namespace std;
int hash(string key){
int hash=0;
int index;
index=key.length();
return index;
}
这是我的hash.h
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
#ifndef __hashtable__hash__
#define __hashtable__hash__
class hash
{
public:
int Hash(string key);
};
#endif /* defined(__hashtable__hash__) */
答案 0 :(得分:4)
您的hash
班级与std::hash
有冲突。立即停止使用using namespace std;
。如果您想缩短打印语句,请尝试using std::cout; using std::endl;