ranges
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int num : vec) {
std::cout << num << " "; // Output: 1 2 3 4 5
}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
}for (int i : std::ranges::iota_view(0, 10)) {
std::cout << i << " "; // Output: 0 1 2 3 4 5 6 7 8 9
}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
}