std::span<T,Extent>::rend, std::span<T,Extent>::crend - cppreference.com (original) (raw)

constexpr reverse_iterator rend() const noexcept; (1) (since C++20)
constexpr const_reverse_iterator crend() const noexcept; (2) (since C++23)

Returns a reverse iterator past the last element of the reversed *this. It corresponds to the element preceding the first element of the non-reversed *this.

This returned iterator only acts as a sentinel. It is not guaranteed to be dereferenceable.

range-rbegin-rend.svg

[edit] Return value

Reverse iterator to the element following the last element.

[edit] Complexity

Constant.

[edit] Example

#include #include #include #include   void ascending(const std::span<const std::string_view> data, const std::string_view term) { std::for_each(data.begin(), data.end(), [](const std::string_view x) { std::cout << x << ' '; }); std::cout << term; }   void descending(const std::span<const std::string_view> data, const std::string_view term) { std::for_each(data.rbegin(), data.rend(), [](const std::string_view x) { std::cout << x << ' '; }); std::cout << term; }   int main() { constexpr std::string_view bars[]{"▁","▂","▃","▄","▅","▆","▇","█"}; ascending(bars, " "); descending(bars, "\n"); }

Output:

▁ ▂ ▃ ▄ ▅ ▆ ▇ █ █ ▇ ▆ ▅ ▄ ▃ ▂ ▁

[edit] See also

| | returns a reverse iterator to the beginning (public member function) [edit] | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | | returns a reverse end iterator for a container or array (function template) [edit] |