简体   繁体   English

使用 range-v3 构建无限范围

[英]Building an infinite range with range-v3

I am trying to build a range which produces infinite random points in a triangle.我正在尝试建立一个在三角形中产生无限随机点的范围。 To do that, I am using CGAL, which already provides the functionality to generate the random points in a triangle.为此,我使用了 CGAL,它已经提供了在三角形中生成随机点的功能。

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

However, CGAL::Random_points_in_triangle_2 returns an iterator.但是, CGAL::Random_points_in_triangle_2返回一个迭代器。 In order to produce a range, I need a sentinel which always return false.为了产生一个范围,我需要一个总是返回假的哨兵。 Is there any sentinel like that already in range-v3 or do I have to code one myself? range-v3 中是否已经有类似的哨兵,还是我必须自己编写一个?

You can use std::unreachable_sentinel (Or ranges::unreachable from <range/v3/iterator/unreachable_sentinel.hpp> ):您可以使用std::unreachable_sentinel (或<range/v3/iterator/unreachable_sentinel.hpp>中的ranges::unreachable ):

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM