首页 > 解决方案 > 如何传递/命名函数作为参数

问题描述

我有一个函数,它将另一个函数作为参数:

T reduce(T* pBegin, T* pEnd, T(*operate)(T, T))
{
    T temp = *pBegin;
    for (T* p = pBegin + 1; p < pEnd; p++)
        temp = operate(temp, *p);
    return temp;
}

这是它的使用方式:

int vec[] = { 12,14,6,-8 };
cout << reduce<int>(vec, vec + 4,
    [](int x, int y){ return (x > y) ? x : y; }
);

为什么是函数名[]?是因为vec数组吗?会不会是别的东西?

标签: c++templatesfunction-pointers

解决方案


推荐阅读