假设我有一个像这样的 Foo 类:
class Foo {
public:
std::vector<Bar> barVec() const {return barVec_;}
private:
std::vector<Bar> barVec_;
};
其中 Bar 是其他类。因此,在 Foo 之外,对 barVec_ 的唯一访问是通过方法 barVec()。
如果 myFoo 是 Foo 的一个实例,而 pred 是 Bar 上的一元谓词,是否可以这样做:
auto i = find_if(myFoo.barVec().begin(), myFoo.barVec().end(), pred);
if (i != myFoo.barVec().end()) {
//do some stuff here
}
还是我必须将 myFoo.barVec() 分配给一个变量并遍历该变量?例如:
std::vector<Bar> tmp = myFoo.barVec();
auto i = find_if(tmp.begin(), tmp.end, pred);
if (i != tmp.end()) {
//do some stuff here
}