gpt4 book ai didi

c++ - 使用迭代器的带有模板的类的构造函数

转载 作者:行者123 更新时间:2023-12-01 14:39:11 24 4
gpt4 key购买 nike

我在标题中有一个Hashmap类

template <typename K, typename M, typename H = std::hash<K>>
class HashMap {
public:
template <class Iterator>
HashMap(const Iterator& begin, const Iterator& end);
};

如何在cpp文件中声明?

我试过了:
template <class <typename K, typename M, typename H> Iterator>
HashMap<K, M, H>::HashMap(const Iterator& begin, const Iterator& end)

这没用。谢谢。

最佳答案

您需要为类和构造函数使用单独的模板,如下所示:

template <typename K, typename M, typename H>
template <class Iterator>
HashMap<K,M,H>::HashMap(const Iterator& begin, const Iterator& end) {
// ...
}

请注意,构造函数的异常定义不能指定默认模板参数。

另外,您的问题还说您要将其放在 .cpp文件中,但您不应该这样做。模板应始终位于头文件中。

关于c++ - 使用迭代器的带有模板的类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62399437/

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