c++ - 如何传递/命名函数作为参数
问题描述
我有一个函数,它将另一个函数作为参数:
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
数组吗?会不会是别的东西?
解决方案
推荐阅读
- html - 图像未相对于其父级调整大小
- qt - 如何使从 qml 组件初始化的 QWidget 的背景透明?
- python - 如何在没有 Context.invoke 或 Context.forward 的情况下“自调用”python-click CLI 命令?
- python - python中的Numba用于更快的哈希
- java - 如何部分重绘画布的非矩形部分
- java - 保护 Java 应用程序免受 SQL 注入
- python-3.x - 仅针对某些文件中的行过滤 Python 日志
- android - 如何使用设置的全跨度或动态 GridCells 数来实现 LazyVerticalGrid。在 jetpack compose 中固定?
- python - 我的代码正在运行但在 15 分钟后停止如何让它无限运行?
- php - 具有不同行和列的 JSON 到 HTML 表