find_if(a.begin(),a.end(),not1(bind2nd(greater<int>(),15)))
时间: 2024-05-30 19:07:59 浏览: 90
C++在成员函数中使用STL的find_if函数实例
这是一个 STL 算法中的 find_if() 函数,它的作用是在 a 容器中查找第一个符合条件的元素。
not1 是一个函数适配器,将一个函数对象的返回值取反。在这里,not1(bind2nd(greater<int>(),15)) 的作用是生成一个函数对象,用于检查容器中的元素是否小于等于 15,如果小于等于 15 则返回 true,否则返回 false。
bind2nd(greater<int>(),15) 是一个函数适配器,将一个二元谓词转换为一个一元谓词,其中第二个参数被绑定为 15。greater<int>() 是一个函数对象,用于比较两个 int 类型的值,返回值为 bool 类型。
因此,not1(bind2nd(greater<int>(),15)) 的作用就是生成一个函数对象,用于检查容器中的元素是否小于等于 15,如果小于等于 15 则返回 true,否则返回 false。
最后,find_if() 函数会在 a 容器中查找第一个符合条件的元素,并返回该元素的迭代器。如果没有符合条件的元素,则返回 a.end()。
阅读全文