Ranges (C++20)

Modern range-based algorithms

Interview Relevant: Latest C++ features

Ranges (C++20)

Composable, lazy algorithms on ranges.

Code Examples

Modern composable ranges in C++20.

cpp
1#include <ranges>
2namespace rv = std::ranges::views;
3
4vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
5
6// Range algorithms (work directly on containers)
7ranges::sort(v);
8auto it = ranges::find(v, 5);
9
10// Views - lazy transformations
11auto even = v | rv::filter([](int x) { return x % 2 == 0; });
12auto squared = v | rv::transform([](int x) { return x * x; });
13
14// Composing views (lazy evaluation)
15auto result = v
16    | rv::filter([](int x) { return x % 2 == 0; })
17    | rv::transform([](int x) { return x * x; })
18    | rv::take(3);
19
20for (int x : result) {
21    cout << x << " ";  // 4 16 36
22}
23
24// Views
25rv::iota(1, 10);           // 1, 2, ..., 9
26rv::iota(1) | rv::take(5); // 1, 2, 3, 4, 5
27rv::reverse(v);
28rv::drop(v, 3);
29rv::take(v, 5);
30rv::join(nested);          // Flatten
31rv::split(str, ',');       // Split string

AI Tutor

Ask about the topic

Sign in Required

Please sign in to use the AI tutor

Sign In