Neatest way to loop over a range of integers

后端 未结 4 1277
感情败类
感情败类 2020-12-17 07:28

Since C++11 introduced the range-based for loop (range-based for in c++11), what is the neatest way to express looping over a range of integers?

Instead of

4条回答
  •  有刺的猬
    2020-12-17 08:24

    With C++20 we will have ranges. You can try them by downloading the lastest stable release from it's author, Eric Niebler, from his github, or go to Wandbox. What you are interested in is ranges::views::iota, which makes this code legal:

    #include 
    #include 
    
    int main() {
        using namespace ranges;
    
        for (int i : views::iota(1, 10)) {
            std::cout << i << ' ';
        }
    }
    

    What's great about this approach is that views are lazy. That means even though views::iota represents a range from 1 to 10 exclusive, no more than one int from that range exists at one point. The elements are generated on demand.

提交回复
热议问题