我正在尝试查找模板函数:
template <typename T>
T add(T lhs, T rhs) {
return lhs + rhs;
}
(用于加,减,乘和除)。
我记得有一套标准的功能 - 你还记得它们是什么吗?
答案 0 :(得分:10)
在标题<functional>
中,您会找到std::plus
,std::minus
,std::multiplies
和std::divides
等内容。
它们也不是功能。他们实际上是functors。
答案 1 :(得分:6)
您需要<functional>
标题中的std::plus等仿函数。请参阅算术运算 here。
这些是仿函数,而不是函数,所以你需要一个实例来做任何有用的事情:
#include <functional>
#include <iostream>
int main() {
std::multiplies<int> m;
std::cout << m(5,3) << "\n";
}
在上面的示例中,这似乎有些过分,但它们对标准库算法非常有用。例如,在向量中找到元素的乘积:
std::vector<int> v{1,2,3,4,5,6};
int prod = std::accumulate(v.begin(), v.end(), 1, std::multiplies<int>());