diff --git a/TinySTL/Algorithm.h b/TinySTL/Algorithm.h index 1007f85..72c4a48 100644 --- a/TinySTL/Algorithm.h +++ b/TinySTL/Algorithm.h @@ -7,6 +7,7 @@ #include "TypeTraits.h" #include +#include namespace TinySTL{ //********* [fill] ******************** @@ -345,6 +346,27 @@ namespace TinySTL{ } return n; } + //********** [mismatch] ****************************** + //********* [Algorithm Complexity: O(N)] **************** + template + std::pair + mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2){ + for (; first1 != last1; ++first1, ++first2){ + if (*first1 != *first2) + break; + } + return std::make_pair(first1, first2); + } + template + std::pair + mismatch(InputIterator1 first1, InputIterator1 last1, + InputIterator2 first2, BinaryPredicate pred){ + for (; first1 != last1; ++first1, ++first2){ + if (!pred(*first1, *first2)) + break; + } + return std::make_pair(first1, first2); + } }