[alg.replace] (original) (raw)
template<class ForwardIterator, class T = iterator_traits<ForwardIterator>::value_type> constexpr void replace(ForwardIterator first, ForwardIterator last,const T& old_value, const T& new_value);template<class ExecutionPolicy, class ForwardIterator,class T = iterator_traits<ForwardIterator>::value_type> void replace(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last,const T& old_value, const T& new_value);template<class ForwardIterator, class Predicate,class T = iterator_traits<ForwardIterator>::value_type> constexpr void replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value);template<class ExecutionPolicy, class ForwardIterator, class Predicate,class T = iterator_traits<ForwardIterator>::value_type> void replace_if(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value);template<[input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_iterator [iterator.concept.input]") I, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_for [iterator.concept.sentinel]")<I> S, class Proj = identity,class T1 = projected_value_t<I, Proj>, class T2 = T1> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<I, const T2&> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<I, Proj>, const T1*> constexpr I ranges::replace(I first, S last, const T1& old_value, const T2& new_value, Proj proj = {});template<[input_range](range.refinements#concept:input%5Frange "25.4.6 Other range refinements [range.refinements]") R, class Proj = identity,class T1 = projected_value_t<iterator_t<R>, Proj>, class T2 = T1> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<iterator_t<R>, const T2&> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<iterator_t<R>, Proj>, const T1*> constexpr borrowed_iterator_t<R> ranges::replace(R&& r, const T1& old_value, const T2& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") I, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<I> S,class Proj = identity, class T1 = projected_value_t<I, Proj>, class T2 = T1> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<I, const T2&> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<I, Proj>, const T1*> I ranges::replace(Ep&& exec, I first, S last,const T1& old_value, const T2& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") R, class Proj = identity,class T1 = projected_value_t<iterator_t<R>, Proj>, class T2 = T1> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<iterator_t<R>, const T2&> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<iterator_t<R>, Proj>, const T1*> borrowed_iterator_t<R> ranges::replace(Ep&& exec, R&& r, const T1& old_value, const T2& new_value, Proj proj = {});template<[input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_iterator [iterator.concept.input]") I, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_for [iterator.concept.sentinel]")<I> S, class Proj = identity,class T = projected_value_t<I, Proj>,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<I, Proj>> Pred> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<I, const T&> constexpr I ranges::replace_if(I first, S last, Pred pred, const T& new_value, Proj proj = {});template<[input_range](range.refinements#concept:input%5Frange "25.4.6 Other range refinements [range.refinements]") R, class Proj = identity, class T = projected_value_t<iterator_t<R>, Proj>,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<iterator_t<R>, Proj>> Pred> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<iterator_t<R>, const T&> constexpr borrowed_iterator_t<R> ranges::replace_if(R&& r, Pred pred, const T& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") I, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<I> S,class Proj = identity, class T = projected_value_t<I, Proj>,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<I, Proj>> Pred> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<I, const T&> I ranges::replace_if(Ep&& exec, I first, S last, Pred pred,const T& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") R, class Proj = identity,class T = projected_value_t<iterator_t<R>, Proj>,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<iterator_t<R>, Proj>> Pred> requires [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<iterator_t<R>, const T&> borrowed_iterator_t<R> ranges::replace_if(Ep&& exec, R&& r, Pred pred, const T& new_value, Proj proj = {});
template<class InputIterator, class OutputIterator, class T> constexpr OutputIterator replace_copy(InputIterator first, InputIterator last, OutputIterator result,const T& old_value, const T& new_value);template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2, class T> ForwardIterator2 replace_copy(ExecutionPolicy&& exec, ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 result,const T& old_value, const T& new_value);template<class InputIterator, class OutputIterator, class Predicate, class T> constexpr OutputIterator replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const T& new_value);template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2,class Predicate, class T> ForwardIterator2 replace_copy_if(ExecutionPolicy&& exec, ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 result, Predicate pred, const T& new_value);template<[input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_iterator [iterator.concept.input]") I, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_for [iterator.concept.sentinel]")<I> S, class O,class Proj = identity, class T1 = projected_value_t<I, Proj>, class T2 = iter_value_t<O>> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<I, O> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<I, Proj>, const T1*> && [output_iterator](iterator.concept.output#concept:output%5Fiterator "24.3.4.10 Concept output_iterator [iterator.concept.output]")<O, const T2&> constexpr ranges::replace_copy_result<I, O> ranges::replace_copy(I first, S last, O result, const T1& old_value, const T2& new_value, Proj proj = {});template<[input_range](range.refinements#concept:input%5Frange "25.4.6 Other range refinements [range.refinements]") R, class O, class Proj = identity,class T1 = projected_value_t<iterator_t<R>, Proj>, class T2 = iter_value_t<O>> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<iterator_t<R>, O> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<iterator_t<R>, Proj>, const T1*> && [output_iterator](iterator.concept.output#concept:output%5Fiterator "24.3.4.10 Concept output_iterator [iterator.concept.output]")<O, const T2&> constexpr ranges::replace_copy_result<borrowed_iterator_t<R>, O> ranges::replace_copy(R&& r, O result, const T1& old_value, const T2& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") I, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<I> S,[random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") O, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<O> OutS,class Proj = identity,class T1 = projected_value_t<I, Proj>, class T2 = iter_value_t<O>> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<I, O> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<I, Proj>, const T1*> && [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<O, const T2&> ranges::replace_copy_result<I, O> ranges::replace_copy(Ep&& exec, I first, S last, O result, OutS result_last,const T1& old_value, const T2& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") R, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") OutR,class Proj = identity, class T1 = projected_value_t<iterator_t<R>, Proj>,class T2 = range_value_t<OutR>> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<iterator_t<R>, iterator_t<OutR>> && [indirect_binary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Fbinary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<ranges::equal_to, projected<iterator_t<R>, Proj>, const T1*> && [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<iterator_t<OutR>, const T2&> ranges::replace_copy_result<borrowed_iterator_t<R>, borrowed_iterator_t<OutR>> ranges::replace_copy(Ep&& exec, R&& r, OutR&& result_r, const T1& old_value,const T2& new_value, Proj proj = {});template<[input_iterator](iterator.concept.input#concept:input%5Fiterator "24.3.4.9 Concept input_iterator [iterator.concept.input]") I, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_for [iterator.concept.sentinel]")<I> S,class O, class T = iter_value_t<O>,class Proj = identity, [indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<I, Proj>> Pred> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<I, O> && [output_iterator](iterator.concept.output#concept:output%5Fiterator "24.3.4.10 Concept output_iterator [iterator.concept.output]")<O, const T&> constexpr ranges::replace_copy_if_result<I, O> ranges::replace_copy_if(I first, S last, O result, Pred pred, const T& new_value, Proj proj = {});template<[input_range](range.refinements#concept:input%5Frange "25.4.6 Other range refinements [range.refinements]") R, class O, class T = iter_value_t<O>, class Proj = identity,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<iterator_t<R>, Proj>> Pred> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<iterator_t<R>, O> && [output_iterator](iterator.concept.output#concept:output%5Fiterator "24.3.4.10 Concept output_iterator [iterator.concept.output]")<O, const T&> constexpr ranges::replace_copy_if_result<borrowed_iterator_t<R>, O> ranges::replace_copy_if(R&& r, O result, Pred pred, const T& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") I, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<I> S,[random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_access_iterator [iterator.concept.random.access]") O, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_sentinel_for [iterator.concept.sizedsentinel]")<O> OutS, class T = iter_value_t<O>,class Proj = identity, [indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<I, Proj>> Pred> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<I, O> && [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<O, const T&> ranges::replace_copy_if_result<I, O> ranges::replace_copy_if(Ep&& exec, I first, S last, O result, OutS result_last, Pred pred, const T& new_value, Proj proj = {});template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") R, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") OutR,class T = range_value_t<OutR>, class Proj = identity,[indirect_unary_predicate](indirectcallable.indirectinvocable#concept:indirect%5Funary%5Fpredicate "24.3.6.3 Indirect callables [indirectcallable.indirectinvocable]")<projected<iterator_t<R>, Proj>> Pred> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_copyable [alg.req.ind.copy]")<iterator_t<R>, iterator_t<OutR>> && [indirectly_writable](iterator.concept.writable#concept:indirectly%5Fwritable "24.3.4.3 Concept indirectly_writable [iterator.concept.writable]")<OutR, const T&> ranges::replace_copy_if_result<borrowed_iterator_t<R>, borrowed_iterator_t<OutR>> ranges::replace_copy_if(Ep&& exec, R&& r, OutR&& result_r, Pred pred, const T& new_value, Proj proj = {});