【问题标题】:Building an infinite range with range-v3使用 range-v3 构建无限范围
【发布时间】:2021-02-18 12:19:27
【问题描述】:

我正在尝试建立一个在三角形中产生无限随机点的范围。为此,我使用了 CGAL,它已经提供了在三角形中生成随机点的功能。

        Triangle coarseTriangle = {v[0], v[1], v[2]};
        CGAL::Random_points_in_triangle_2<Point> randomSamplesGenerator(coarseTriangle);

但是,CGAL::Random_points_in_triangle_2 返回一个迭代器。为了产生一个范围,我需要一个总是返回假的哨兵。 range-v3 中是否已经有类似的哨兵,还是我必须自己编写一个?

【问题讨论】:

    标签: c++ range-v3


    【解决方案1】:

    您可以使用std::unreachable_sentinel(或ranges::unreachable 来自&lt;range/v3/iterator/unreachable_sentinel.hpp&gt;):

            ranges::subrange randomSamplesRange(randomSamplesGenerator, ranges::unreachable);
    

    【讨论】:

    • 谢谢,这正是我想要的,但 G 没有帮助
    • 其实不行。 subrange() 构建失败,make_subrange 由于缺少is_sized_sentinel_而失败
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2021-06-20
    相关资源
    最近更新 更多