C++ LINQ-like iterator operations

后端 未结 8 989
执念已碎
执念已碎 2021-02-13 13:40

Having been tainted by Linq, I\'m reluctant to give it up. However, for some things I just need to use C++.

The real strength of linq as a linq-consumer (i.e. to me) li

8条回答
  •  余生分开走
    2021-02-13 14:23

    Here is another alternative that is simply a wrapper around boost and stl algorithms, and thus you get all the performance benefits of those implementations.

    It works like this:

    std::vector xs;
    auto count = from(xs)
       .select([](int x){return x*x;})
       .where([](int x){return x > 16;})
       .count();
    auto xs2 = from(xs)
       .select([](int x){return x*x;})
       .to>();
    

    Note that some methods return a proxy for empty ranges, e.g.

    std::vector xs;
    auto max = from(xs)
       .select([](int x){return x*x;})
       .where([](int x){return x > 16;})
       .max()
       .value_or(0);
    

提交回复
热议问题