std::ranges::subrange
From cppreference.com
Defined in header <ranges>
|
||
template< std::input_or_output_iterator I, |
(since C++20) | |
The subrange class template combines together an iterator and a sentinel into a single view.
Additionally, the subrange is a sized_range whenever the final template parameter is subrange_kind::sized (which happens when sized_sentinel_for<S, I> is satisfied or when size is passed explicitly as a constructor argument)
This section is incomplete Reason: members |
Helper template
template<std::input_or_output_iterator I, std::sentinel_for<I> S ranges::subrange_kind K> |
||
This specialization of std::ranges::enable_borrowed_range makes subrange
satisfy borrowed_range.
Example
Run this code
#include <ranges> void mutate_map_values(std::multimap<K,V>& m, K k) { using namespace std::ranges; for (auto& [_, v] : subrange(m.equal_range(k))) { mutate(v); } }