标题中的类模板

时间:2017-07-06 09:58:19

标签: c++ templates header

我有一个类,其中有使用模板声明的结构。无法弄清楚如何在头文件中描述类结构

.cpp文件

delete

在头文件中,我正在尝试编写以下代码 .h文件

UserDefaults.standard.set(YourStringArray, forKey: "stringArr")

let arr = UserDefaults.standard.stringArray(forKey: "stringArr")

for s in arr! {
    //do stuff
}

但根据此定义,编译器会生成错误,标识符#include <map> #include <numeric> class Statistics { private: std::map<int, int> *data; struct add_first { template<class Pair> int operator()(int value, const Pair& pair) const { return value + pair.first; } }; struct add_second { template<class Pair> int operator()(int value, const Pair& pair) const { return value + pair.second; } }; struct add_expectation { template<class Pair> int operator()(int value, const Pair& pair) const { return value + (pair.first * pair.second); } }; public: Statistics(std::map<int, int> *load_data) { data = load_data; } double get_mean() { return std::accumulate((*data).begin(), (*data).end(), 0.0, add_first()) / (*data).size(); } double get_expectation() { return std::accumulate((*data).begin(), (*data).end(), 0.0, add_expectation()) / std::accumulate((*data).begin(), (*data).end(), 0.0, add_second()); } }; 未定义。怎么了?

1 个答案:

答案 0 :(得分:1)

在@Angew服用所有产品后,应该没有错误。

  1. 删除多余的冒号。
  2. 仅在头文件中定义类。