ranges


1. Iterate Over a Container with a Range-Based for Loop

std::vector<int> vec = {1, 2, 3, 4, 5};

for (int num : vec) {
    std::cout << num << " ";  // Output: 1 2 3 4 5
}

2. Iterate Over a Subrange of a Container

std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

for (int num : vec | std::views::drop(2) | std::views::take(5)) {
    std::cout << num << " ";  // Output: 3 4 5 6 7
}

3. Iterate Over a Range of Integers

for (int i : std::ranges::iota_view(0, 10)) {
    std::cout << i << " ";  // Output: 0 1 2 3 4 5 6 7 8 9
}

4. Iterate Over a Range of Characters

for (char c : std::ranges::iota_view('a', 'z' + 1)) {
    std::cout << c << " ";  // Output: a b c d e f g h i j k l m n o p q r s t u v w x y z
}

5. Iterate Over a Range of Pairs

6. Iterate Over a Map

7. Iterate Over a Set

8. Iterate Over a Range of Indices

9. Iterate Over a Range of Sizes

10. Iterate Over a Collection of Objects with a Member Function

11. Iterate Over a Range of Integers in Decreasing Order

12. Iterate Over a Range of Characters in Reverse Order

13. Iterate Over a Range of Pairs in Reverse Order

14. Iterate Over a Map in Reverse Order

15. Iterate Over a Set in Reverse Order

16. Iterate Over a Range of Integers with a Stride

17. Iterate Over a Range of Characters with a Stride

18. Iterate Over a Range of Pairs with a Stride

19. Iterate Over a Map with a Stride

20. Iterate Over a Set with a Stride

21. Iterate Over a Range of Integers with a Filter

22. Iterate Over a Range of Characters with a Filter

23. Iterate Over a Range of Pairs with a Filter

24. Iterate Over a Map with a Filter

25. Iterate Over a Set with a Filter

26. Iterate Over a Range of Integers with a Transform

27. Iterate Over a Range of Characters with a Transform

28. Iterate Over a Range of Pairs with a Transform

29. Iterate Over a Map with a Transform

30. Iterate Over a Set with a Transform