使用 range-v3 构建无限范围

问题描述

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

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

然而,Cgal::Random_points_in_triangle_2 返回一个迭代器。为了产生一个范围,我需要一个总是返回 false 的哨兵。 range-v3 中是否已经有这样的哨兵,还是我必须自己编写一个

解决方法

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...