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