我正在HashTable用C++ 实现一个模板类,它的原型是这样的:
template<class K, class T, unsigned int containerSize=CONTAINER_SIZE>
class LPHashTableChained{
........
unsigned int hashFunction(K& key);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,hashFunction()当K等于字符串类型时,我如何专门化我的方法以表现不同.
我尝试用正确的格式实现函数,并使用第二个实现,我省略了class K参数并将字符串作为类型如下所示:
第一次实施:
template<class K, class T, unsigned int containerSize>
unsigned int LPHashTableChained<K,T,containerSize>::hashFunction(K& key){
}
Run Code Online (Sandbox Code Playgroud)
第二次实施:
template<class T, unsigned int containerSize>
unsigned int LPHashTableChained<string,T,containerSize>::hashFunction(const string& key){
}
Run Code Online (Sandbox Code Playgroud)
但我得到编译错误!
什么是specilize最简单的方法hashFunction,当K= string???
谢谢