繁体   English   中英

你怎么能在 c++ 中制作一个同时接受浮点数和双精度数的 function

[英]how can you make a function that accepts both float and double in c++

我不知道它是否可能,但我想让这个计算向量平均值的 function 同时接受浮点数和双精度数。 有什么办法吗? 谢谢。

#include <numeric>
#include <stdint.h>
#include <vector>

int mean(std::vector<float> var)
{
    int number = var.size();
    int varAcc = std::accumulate(var.begin(), var.end(), 0);
    return varAcc / number;
}```

您可以使用模板使其适用于所有类型。

template<typename T>
T mean(const std::vector<T>& var)
{
    int number = var.size();
    T varAcc = std::accumulate(var.begin(), var.end(), T{});
    return varAcc / number;
}

这就是您编写更少代码并使事情在支持 function 模板和模板类中使用的操作的类型上工作的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM