From f8220473ef8dae99c33935d26749d070bb152686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Fri, 24 Oct 2014 16:14:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90find=5Ffirst=5Fof?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TinySTL/Algorithm.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/TinySTL/Algorithm.h b/TinySTL/Algorithm.h index 027de22..63b30ae 100644 --- a/TinySTL/Algorithm.h +++ b/TinySTL/Algorithm.h @@ -276,6 +276,31 @@ namespace TinySTL{ } return ret; } + //********** [find_first_of] ****************************** + //********* [Algorithm Complexity: O(N*N)] **************** + template + 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 + 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; + } }