假设我有一节课:
class Cell {
int ID;
int valueX;
int valueY;
};
Run Code Online (Sandbox Code Playgroud)
在main()中我声明了Cells的向量:
vector<Cell> myCells;
Run Code Online (Sandbox Code Playgroud)
我的问题是编写一个函数,它获取单元格的向量,运算符(gt - 大于,等于或等于等等),变量名称和整数,并返回满足要求的单元格向量?例如:
vector<Cells> resultCells = filter(myCells, gt, valueX, 5)
Run Code Online (Sandbox Code Playgroud)
是Cell的向量,其中每个单元格的valueX大于5.
我的第一次尝试需要大量的ifs和开关,我确信这不是正确的解决方案.然后我问朋友一个提示,他告诉我有关像functor,lambdas,std :: function,std :: map,std :: bind之类的东西,这可以帮助我做到这一点,我已经读过它,但我我无法在实践中使用.
我在互联网上看到的一个例子是这个,但它不那么复杂,难以重用(对我来说).