完成adjacent_find

This commit is contained in:
邹晓航
2014-10-29 15:01:01 +08:00
parent f3f94fcf33
commit 1ad74b0211

View File

@@ -1,6 +1,9 @@
#ifndef _ALGORITHM_H_
#define _ALGORITHM_H_
#include "Functional.h"
#include "TypeTraits.h"
#include <cstring>
namespace TinySTL{
@@ -301,6 +304,21 @@ namespace TinySTL{
}
return last1;
}
//********** [adjacent_find] ******************************
//********* [Algorithm Complexity: O(N)] ****************
template <class ForwardIterator>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last){
return TinySTL::adjacent_find(first, last,
equal_to<iterator_traits<typename ForwardIterator>::value_type>());
}
template <class ForwardIterator, class BinaryPredicate>
ForwardIterator adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred){
for (; first != last; ++first){
if (first + 1 != last && pred(*(first), *(first + 1)))
break;
}
return first;
}
}