C++ › Ranges & Views

What are some commonly used range adaptors?

Intermediate

Answer

Common adaptors include views::filter (keep elements matching a predicate), views::transform (apply a function), views::take/drop (first/skip n), views::reverse, views::join (flatten), views::split, views::iota (generate a sequence), and views::keys/values (for maps). They compose to express complex transformations declaratively.
auto first3 = std::views::iota(1) | std::views::take(3); // 1,2,3
Real-world example views::iota with take generates a bounded sequence lazily without building a container.

Common follow-ups: What does views::transform do? | What does views::iota generate?