template <class T, OutputIterator<const T&> O, Sentinel<O> S>
O fill(O first, S last, const T& value);
template <class T, OutputRange<const T&> Rng>
safe_iterator_t<Rng>
fill(Rng&& rng, const T& value);
template <class T, OutputIterator<const T&> O>
O fill_n(O first, difference_type_t<O> n, const T& value);
Effects: fill assigns value through all the iterators in the range [first,last). fill_n assigns value through all the iterators in the counted range [first,n) if n is positive, otherwise it does nothing.
Returns: last, where last is first + max(n, 0) for fill_n.
Complexity: Exactly last - first assignments.