查找某些元素第一次出現的地點
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