gpt4 book ai didi

c++ - STL 谓词是否需要是纯谓词?

转载 作者:行者123 更新时间:2023-11-30 03:06:58 25 4
gpt4 key购买 nike

“纯”谓词是指它们依赖于它们的参数。因此,以下函数对象是否是用于 std::sort

的有效谓词
// A predicate for sorting objects of type T2 that relies on an 
// object of type T1.
class APredicate {
T1 &someObj;
APredicate(T1 &someObject) : someObj(someObject) {};

bool operator() (T2 thing1, T2 thing2) {
return someObj.someFn(thing1) < someobj.someFn(thing2);
}
}

这是否有效?永远有效?还是取决于 someObj.SomeFn() 的实际作用?

最佳答案

“只取决于他们的参数”实际上意味着“如果用相同的参数再次调用,必须返回与以前相同的结果”。如果您的(特定实例)someObj不会改变从 someObj::someFn 返回什么的想法对于 T2 的特定实例它“纯粹的”。

只要条件在谓词的特定实例的生命周期内成立(STL 通过 获取谓词,因此每个集合或操作都有自己的实例),它就是正确的(显然它有以满足特定集合或算法的任何其他要求)。

关于c++ - STL 谓词是否需要是纯谓词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com