Exploring the standard range adaptors
In the previous recipe, we looked at how the ranges library helps us simplify various tasks when working with collections (ranges), such as enumerating, filtering, transforming, and reversing. We did so with the help of range adaptors. However, we have only looked at a small set of adaptors. There are more available in the standard library, some included in C++20 and others in C++23. In this recipe, we will explore all the adapters in the standard library.
Getting ready
In the snippets shown in this recipe, we will use the following namespace aliases:
namespace rv = std::ranges::views;
namespace rg = std::ranges;
Also, to compile the snippets below, you need to include the <ranges>
and <algorithm>
headers (for the ranges library).
How to do it…
In C++20, the following adaptors are available to use:
ranges::filter_view
/views::filter
represents a view of the underlying sequence but without...