假设我有一堂课:
class Cell {
int ID;
int valueX;
int valueY;
};
在 main() 中,我声明了 Cells 向量:
vector<Cell> myCells;
我的问题是编写一个函数,获取单元格向量、运算符(gt - 大于、le - 小于或等于等)、变量名称和整数,并返回符合要求的单元格向量?例如:
vector<Cells> resultCells = filter(myCells, gt, valueX, 5)
是单元格的向量,其中每个单元格的 valueX 大于 5。
我的第一次尝试需要很多 ifs 和 switch,我确信这不是正确的解决方案。然后我向一个朋友要了一个小费,他告诉我诸如仿函数、lambdas、std::function、std::map、std::bind 之类的东西,这可以帮助我做到这一点,我已经读过它,但我我无法在实践中使用。
我在 Internet 上看到的示例之一就是 这个,但它不那么复杂且难以重用(对我而言)。
原文由 user6320378 发布,翻译遵循 CC BY-SA 4.0 许可协议
把事情简单化:
对于您的特定要求( “编写一个函数来获取单元格向量、运算符(gt - 大于、le - 小于或等于等)、变量名称和整数,并返回单元格向量” ),假设“get”表示“作为参数”:
用法: