gpt4 book ai didi

c++ - 使用基于模板类类型的单独函数

转载 作者:行者123 更新时间:2023-11-28 06:06:03 25 4
gpt4 key购买 nike

我有一个相当简单的作业来检查哈希表,我们必须创建一个模板类并使用 float 、整数和 STL 字符串作为关键数据类型来测试它。

我有这样的类(class)设置:

 template<class K, class T>
class hashTable{
public:
private:
};

当我调用类进行测试时,我使用:

hashTable<float, data>
hashTable<int, data>

等等...我只是不确定如何根据调用函数时使用的数据类型让类使用我为每种数据类型使用的哈希函数。

最佳答案

我看到至少三种方法:

首先。创建重载函数 hash对于所有类型:

hash_t hash(int);
hash_t hash(float);

并在hashTable只需调用 hash() .

其次。创建一个单独的模板化类(或者,一个函数)hash<T>并将其专门用于 int , float , 等等 然后在 hastTable一般将其称为 hash<K> :

 template<class T> class hash;
template<> class hash<int> { hash_t operator() {...} };
template<> class hash<float> { hash_t operator() {...} };

第三。通过模板参数向 hashTable 提供所需的类或函数, 就像标准一样 std::sort接收比较函数:

template<class K, class T, class Hash>
class hashTable...

关于c++ - 使用基于模板类类型的单独函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com