STL之adjacent_find

来源:互联网 发布:js 迭代object 编辑:程序博客网 时间:2024/05/24 01:47

       adjacent_find是一个不破坏操作数据的模板函数,由<algorithm>头文件提供,这个函数能做什么呢?直接上代码

 

       

bool isGreater(int x,int y){return (x+y)>10?true:false;//两个数相加大于10}int main(){vector<int> vecInt;vecInt.push_back(3);vecInt.push_back(7);vecInt.push_back(8);vecInt.push_back(8);vecInt.push_back(9);vecInt.push_back(10);vector<int>::iterator iter = adjacent_find(vecInt.begin(),vecInt.end());cout<<(*iter)<<endl;iter = adjacent_find(vecInt.begin(),vecInt.end(),isGreater);cout<<(*iter)<<endl;return 1;}


输出结果:

 

   

 

第一次调用的时候,该函数会寻找两个相邻且相等的元素,并返回第一个元素的迭代器。

第二次调用时,我传入了第三个参数,是一个函数,这个函数判断传入的两个参数相加后是否大于10,如果大于则返回true,否则返回false

如果没有第三个参数,那么这个函数只能寻找相邻且相等的元素,如此,功能太单一了,但有第三个参数,我们就可以根据自己的需要写一个

函数,来获取符合我们特定要求的相邻元素了

原创粉丝点击