From f339a632446d5d4b9c0daf26ef9134377c8e3458 Mon Sep 17 00:00:00 2001 From: sabertazimi Date: Fri, 23 Nov 2018 15:09:23 +0800 Subject: [PATCH] update(cpp-stl): usage of std::equal algorithm issue sabertazimi/awesome-notes#104 --- language/cpp/cppBasicNotes.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/language/cpp/cppBasicNotes.md b/language/cpp/cppBasicNotes.md index 260d776dc5..6422d8162e 100644 --- a/language/cpp/cppBasicNotes.md +++ b/language/cpp/cppBasicNotes.md @@ -947,6 +947,34 @@ lexicographical_compare mismatch ``` +```cpp +template +bool equal( + InputIt1 first1, + InputIt1 last1, + InputIt2 first2 +) { + for (; first1 != last1; ++first1, ++first2) { + if (!(*first1 == *first2)) { + return false; + } + } + + return true; +} +``` + +```cpp +bool is_prefix(const std::string& s, const std::string& of) { + if (s.size() > of.size()) return false; + return std::equal(s.begin(), s.end(), of.begin()); +} + +bool is_palindrome(const std::string& s) { + return std::equal(s.begin(), s.begin() + s.size() / 2, s.rbegin()); +} +``` + ### Search Algortihms ```cpp