小编use*_*378的帖子

如何在c ++中过滤对象

假设我有一节课:

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之类的东西,这可以帮助我做到这一点,我已经读过它,但我我无法在实践中使用.

我在互联网上看到的一个例子是这个,但它不那么复杂,难以重用(对我来说).

c++ lambda vector c++11

4
推荐指数
1
解决办法
9013
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1

vector ×1