我试图找到模板函数:
template <typename T>
T add(T lhs, T rhs) {
return lhs + rhs;
}
Run Code Online (Sandbox Code Playgroud)
(用于加,减,乘和除).
我记得有一套标准的功能 - 你还记得它们是什么吗?
您需要函子如的std ::加上从<functional>标题.请参阅此处的算术运算 .
这些是仿函数,而不是函数,所以你需要一个实例来做任何有用的事情:
#include <functional>
#include <iostream>
int main() {
std::multiplies<int> m;
std::cout << m(5,3) << "\n";
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,这似乎有些过分,但它们对标准库算法非常有用.例如,在向量中查找元素的乘积:
std::vector<int> v{1,2,3,4,5,6};
int prod = std::accumulate(v.begin(), v.end(), 1, std::multiplies<int>());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |