From af05970329bcc1c42d2007d0c4ca5d04e9c8670d Mon Sep 17 00:00:00 2001 From: sabertazimi Date: Fri, 23 Nov 2018 15:15:07 +0800 Subject: [PATCH] update(cpp-stl): usage of `find find_if` issue sabertazimi/awesome-notes#104 --- language/cpp/cppBasicNotes.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/language/cpp/cppBasicNotes.md b/language/cpp/cppBasicNotes.md index 6422d8162e..7ac37250c6 100644 --- a/language/cpp/cppBasicNotes.md +++ b/language/cpp/cppBasicNotes.md @@ -91,7 +91,9 @@ - [Permutation Algorithms](#permutation-algorithms) - [Numeric Algorithms](#numeric-algorithms) - [Query Algorithms](#query-algorithms) + - [Equal STL Algo](#equal-stl-algo) - [Search Algortihms](#search-algortihms) + - [Find STL Algo](#find-stl-algo) - [Set Algortihms](#set-algortihms) - [Mover Algorithms](#mover-algorithms) - [Value Algorithms](#value-algorithms) @@ -947,6 +949,8 @@ lexicographical_compare mismatch ``` +#### Equal STL Algo + ```cpp template bool equal( @@ -995,6 +999,24 @@ max_element minmax_element ``` +#### Find STL Algo + +```cpp +template + InputIterator find (InputIterator first, InputIterator last, const T& val) { + while (first!=last) { + if (*first==val) return first; + ++first; + } + return last; +} +``` + +```cpp +auto it = std::find_if(begin(g_register_descriptors), end(g_register_descriptors), + [r](auto&& rd) { return rd.r == r; }); +``` + ### Set Algortihms ```cpp