std::ranges::subrange<I,S,K>::prev - cppreference.com
Namespaces
Variants

std::ranges::subrange<I,S,K>::prev

From cppreference.com
 
 
Ranges library
Range adaptors
 
 
constexpr subrange prev( std::iter_difference_t<I> n = 1 ) const
    requires std::bidirectional_iterator<I>;
(since C++20)

Returns a copy of *this whose begin_ is decremented (or incremented if n is negative). The actual decrement (or increment) operation is performed by advance().

Equivalent to:auto tmp = *this;
tmp.advance(-n);
return tmp;
.

Parameters

n - number of decrements of the iterator

Return value

As described above.

Notes

The difference between this function and advance() is that the latter performs the decrement (or increment) in place.

Example

#include <iterator>
#include <list>
#include <print>
#include <ranges>

int main()
{
    std::list list{1, 2, 3, 4, 5};
    std::ranges::subrange sub{std::next(list.begin(), 2), std::prev(list.end(), 2)};
    std::println("{} {} {}", sub, sub.prev(), sub.prev(2));
}

Output:

[3] [2, 3] [1, 2, 3]

See also