本文主要是介绍STL之定义自己的判断式(predicate)作为算法的参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用STL算法的时候,如何传递函数对象的时候附带用户自定义类型参数呢。
两种等效形式
形式一
bool greater1000(int n)
{
greater<int>gt;
return gt(n, 1000);
}
形式二
bind2nd(gt, 1000);
两种等效形式在调用方面是一致的
greater1000(1500);
(bind2nd(gt, 1000))(1500);
因此才能当作STL算法第三个参数,因此第二种形式才会比第一种形式多一个参数,因此多的一个参数一切皆有可能(可以传用户自定义类型)
直接上例子,我琢磨+调试花了整整3个小时。我感觉这种用法可以说涵盖所有使用算法的情况。
例子作用:在坐标数组中查找横纵坐标均超过(50, 50)的坐标(具体的数值可以以参数给定)。
最近定了个专题学习STL算法部分,让代码更加简单,易读,健壮。
这篇关于STL之定义自己的判断式(predicate)作为算法的参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!