A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/algorithm/../string/../ranges/reverse_view.html below:

std::ranges::views::reverse, std::ranges::reverse_view - cppreference.com

1)

A range adaptor that represents a view of underlying

view

with reversed order.

2) RangeAdaptorObject

. The expression

views::reverse(e)

is

expression-equivalent

to one of the following expressions, except that

e

is evaluated only once:

In other words,

views::reverse

unwraps reversed views if possible.

A reverse_view always models bidirectional_range and common_range, and it models borrowed_range, sized_range, or random_access_range if the underlying view type V models the corresponding concept.

[edit] Data members Member Description V base_ (private) the underlying view
(exposition-only member object*) non-propagating-cache<ranges::iterator_t<V>> cached_end_ (private)
(present only if V does not satisfy common_range) an object that caches the result of calls to begin()
(exposition-only member object*) [edit] Member functions constructs a reverse_view
(public member function) returns the underlying view V
(public member function) returns the beginning iterator of the reverse_view
(public member function) returns the end iterator of the reverse_view
(public member function) returns the size of the view if it is bounded
(public member function) returns the approximate size of the underlying approximately_sized_range
(public member function) Inherited from std::ranges::view_interface returns whether the derived view is empty, provided only if it satisfies sized_range or forward_range
(public member function of std::ranges::view_interface<D>) [edit] returns a constant iterator to the beginning of the range
(public member function of std::ranges::view_interface<D>) [edit] returns a sentinel for the constant iterator of the range
(public member function of std::ranges::view_interface<D>) [edit] returns whether the derived view is not empty, provided only if ranges::empty is applicable to it
(public member function of std::ranges::view_interface<D>) [edit] returns the first element in the derived view, provided if it satisfies forward_range
(public member function of std::ranges::view_interface<D>) [edit] returns the last element in the derived view, provided only if it satisfies bidirectional_range and common_range
(public member function of std::ranges::view_interface<D>) [edit] returns the nth element in the derived view, provided only if it satisfies random_access_range
(public member function of std::ranges::view_interface<D>) [edit] std::ranges::reverse_view::reverse_view (1) (since C++20)

constexpr reverse_view( V r );

(2) (since C++20) 1)

Value-initializes

base_

  via its default member initializer (

= V()

).

2)

Initializes

base_

  with

std::move(r)

.

Parameters std::ranges::reverse_view::base (1) (since C++20)

constexpr V base() &&;

(2) (since C++20)

Returns the underlying view.

1)

Copy-constructs the result from the underlying view. Equivalent to

return base_ ;

.

2)

Move-constructs the result from the underlying view. Equivalent to

return std::move(base_ );

.

std::ranges::reverse_view::begin

In order to provide the amortized constant time complexity required by the

range

concept, this function caches the result within the cache object for use on subsequent calls.

std::ranges::reverse_view::size

Returns the size of the view if the view is bounded. Equivalent to return ranges::size(base_ );.

std::ranges::as_rvalue_view::reserve_hint

constexpr auto reserve_hint()
    requires ranges::approximately_sized_range<V>;

(1) (since C++26)

constexpr auto reserve_hint() const
    requires ranges::approximately_sized_range<const V>;

(2) (since C++26)

Returns ranges::reserve_hint(base_ ).

[edit] Deduction guides template< class R >
reverse_view( R&& ) -> reverse_view<views::all_t<R>>;
(since C++20) [edit] Helper templates

This specialization of std::ranges::enable_borrowed_range makes reverse_view satisfy borrowed_range when the underlying view satisfies it.

[edit] Notes [edit] Example
#include <iostream>
#include <ranges>
 
int main()
{
    static constexpr auto il = {3, 1, 4, 1, 5, 9};
 
    std::ranges::reverse_view rv{il};
    for (int i : rv)
        std::cout << i << ' ';
    std::cout << '\n';
 
    for (int i : il | std::views::reverse)
        std::cout << i << ' ';
    std::cout << '\n';
 
    // operator[] is inherited from std::view_interface
    for (auto i{0U}; i != rv.size(); ++i)
        std::cout << rv[i] << ' ';
    std::cout << '\n';
}

Output:

9 5 1 4 1 3
9 5 1 4 1 3
9 5 1 4 1 3
[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior LWG 3494 C++20 reverse_view was never a borrowed_range it is a borrowed_range if its underlying view is [edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4