[英]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.