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
如果没有第三个参数,那么这个函数只能寻找相邻且相等的元素,如此,功能太单一了,但有第三个参数,我们就可以根据自己的需要写一个
函数,来获取符合我们特定要求的相邻元素了