查找某些元素第一次出现的地点
InputIterator find_first_of (InputIterator beg, InputIterator end,ForwardIterator searchBeg, ForwardIterator searchEnd);
InputIterator find_first_of (InputIterator beg, InputIterator end,ForwardIterator searchBeg, ForwardIterator searchEnd,BinaryPredicate op);
- 第一种形式返回第一个既出现在[beg,end]内也出现在区间[searchBeg,searchEnd]的元素在[beg,end]中的位置。
- 第二种形式返回第一个在[beg,end]区间内使[searchBeg,searchEnd]中任意一个元素返回真的位置。
- 如果匹配到,两种形式都返回end
- op不能在函数执行过程中改变状态,也不应改变区间内的元素。
- 如果使用反向迭代器,则可以用来查找最后一个满足条件的元素位置。
int main()
{
vector<int>v{ 1,2,3,4,5,6,7,1,1,2,0,3,9,4,8,8,4 };
list<int>lst{6,8,2,3,4};
cout << *find_first_of(v.begin(), v.end(), lst.begin(), lst.end())<<ends;
cout << *find_first_of(v.rbegin(), v.rend(), lst.begin(), lst.end(), [](int a,int b)
{
return a>b;
});
return 0;
}
输出结果:2 4