这是我之前关于 retrieving and editing private members of objects in a vector 的问题的延续.
我有一个充满对象的 vector ,这些对象具有我需要访问的私有(private)成员。 我已经创建了用于返回每个私有(private)成员的访问器函数,现在正在寻找迭代对象 vector 的最佳方法,从中返回一个特定的私有(private)成员并将其与给定变量进行比较,直到找到匹配项。强>
我考虑过使用 find_if
但是对于 vector 中的每个对象,使用成员函数返回值作为标准没有运气。
我也无法使用 for_each
完成这项工作。
我提出一个额外问题的原因是我为此考虑的时间比我应该考虑的时间长,而且找到问题的解决方案变得非常紧迫。任何朝着正确方向的插入都将不胜感激!
最佳答案
创建一个仿函数:
struct CompareTo{
CompareTo(const AnotherObject& aValue) : theValue(aValue){}
bool operator()(const Object& anObject) const{
return anObject.getMemberVar() == theValue;
}
const AnotherObject& theValue;
};
可以放入find_if
。
关于c++ - 在 vector 中调用对象的成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5837690/