完成find_first_of
This commit is contained in:
@@ -276,6 +276,31 @@ namespace TinySTL{
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
//********** [find_first_of] ******************************
|
||||||
|
//********* [Algorithm Complexity: O(N*N)] ****************
|
||||||
|
template <class ForwardIterator1, class ForwardIterator2>
|
||||||
|
ForwardIterator1 find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||||
|
ForwardIterator2 first2, ForwardIterator2 last2){
|
||||||
|
for (; first1 != last1; ++first1){
|
||||||
|
for (auto it = first2; it != last2; ++it){
|
||||||
|
if (*first1 == *it)
|
||||||
|
return first1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return last1;
|
||||||
|
}
|
||||||
|
template <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>
|
||||||
|
ForwardIterator1 find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,
|
||||||
|
ForwardIterator2 first2, ForwardIterator2 last2,
|
||||||
|
BinaryPredicate pred){
|
||||||
|
for (; first1 != last1; ++first1){
|
||||||
|
for (auto it = first2; it != last2; ++it){
|
||||||
|
if (pred(*first1, *it))
|
||||||
|
return first1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return last1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user