FreeBSD Manual Pages
std::experi...nd_first_of(3) C++ Standard Libary std::experi...nd_first_of(3) NAME std::experimental::ranges::find_first_of - std::experimen- tal::ranges::find_first_of Synopsis Defined in header <experimental/ranges/algorithm> template< InputIterator I1, Sentinel<I1> S1, ForwardIterator I2, Sentinel<I2> S2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, IndirectRelation<projected<I1, Proj1>, (1) (ranges TS) projected<I2, Proj2>> Pred = ranges::equal_to<> > I1 find_first_of(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = Pred{}, Proj1 proj1 = Proj1{}, Proj2 proj2 = Proj2{}); template< InputRange R1, ForwardRange R2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, IndirectRelation<projected<ranges::iterator_t<R1>, Proj1>, projected<ranges::iterator_t<R2>, Proj2>> Pred = ranges::equal_to<> (2) (ranges TS) > ranges::safe_iterator_t<R1> find_first_of(R1&& r1, R2&& r2, Pred pred = Pred{}, Proj1 proj1 = Proj1{}, Proj2 proj2 = Proj2{}); 1) Searches the range [first1, last1) for any of the elements in the range [first2, last2), after projecting the ranges with proj1 and proj2 respec- tively. The projected elements are compared using pred. 2) Same as (1), but uses r1 as the first source range and r2 as the second source range, as if using ranges::begin(r1) as first1, ranges::end(r1) as last1, ranges::begin(r2) as first2, and ranges::end(r2) as last2. Parameters first1, last1 - the range of elements to examine r1 - the range of elements to examine first2, last2 - the range of elements to search for r2 - the range of elements to search for pred - predicate to use to compare the projected elements with proj1 - projection to apply to the elements in the first range proj2 - projection to apply to the elements in the second range Return value Iterator to the first element in the range [first1, last1) that is equal to an element from the range [first2, last2) after projection. If no such element is found, an iterator comparing equal to last1 is returned. Complexity At most (S*N) applications of the predicate and each projection, where S = distance(last2 - first2) and N = last1 - first1. Possible implementation template< InputIterator I1, Sentinel<I1> S1, ForwardIterator I2, Sentinel<I2> S2, class Proj1 = ranges::identity, class Proj2 = ranges::identity, IndirectRelation<projected<I1, Proj1>, projected<I2, Proj2>> Pred = ranges::equal_to<> > I1 find_first_of(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = Pred{}, Proj1 proj1 = Proj1{}, Proj2 proj2 = Proj2{}) { for (; first1 != last1; ++first1) { for (ForwardIt it = first2; it != last2; ++it) { if (ranges::invoke(pred, ranges::invoke(proj1, *first1), ranges::invoke(proj2, *it))) { return first1; } } } return first1; } Example This section is incomplete Reason: no example See also find_first_of searches for any one of a set of elements (function template) find finds the first element satisfying specific criteria find_if (function template) find_if_not http://cppreference.com 2022.07.31 std::experi...nd_first_of(3)
NAME | Synopsis | Parameters | Return value | Complexity | Possible implementation | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::ranges::find_first_of&sektion=3&manpath=FreeBSD+Ports+15.0>
