← index
cplusplus2x.Examples/C++20/ranges/example3/range.cpp
Source: cplusplus2x.Examples/C++20/ranges/example3/range.cpp
// use g++ 13

#include <iostream>
#include <ranges>
#include <sstream>
#include <string>

int main() {
    std::ranges::iota_view v_range{1, 100};
    for (auto val : v_range) { // 1-99
        std::cout << val << "\n";
    }
    for (auto val2 : std::ranges::iota_view('a', 'z' + 1)) {
        std::cout << val2 << "\n";
    }
    std::istringstream values{"25 25 100"};
    for (const auto &i : std::ranges::istream_view<int>(values)) {
        std::cout << i << " + 1 = " << i + 1 << "\n";
    }
    std::string_view s{"test1"}; // string view is a view
    for (auto &i : s) {
        std::cout << "ch: " << i << "\n";
    }
    for (auto &i : std::views::take(s, 2)) {
        std::cout << "ch index:" << i << "\n";
    }
    return 0;
}