使用 range-v3 构建无限范围
Building an infinite range with 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
return 是一个迭代器。为了产生一个范围,我需要一个总是 return false 的哨兵。 range-v3 中是否已经有类似的哨兵,还是我必须自己编写一个?
您可以使用 std::unreachable_sentinel
(Or ranges::unreachable
from <range/v3/iterator/unreachable_sentinel.hpp>
):
ranges::subrange randomSamplesRange(randomSamplesGenerator, ranges::unreachable);
我正在尝试建立一个范围,在三角形中产生无限随机点。为此,我使用了 CGAL,它已经提供了在三角形中生成随机点的功能。
Triangle coarseTriangle = {v[0], v[1], v[2]};
CGAL::Random_points_in_triangle_2<Point> randomSamplesGenerator(coarseTriangle);
但是,CGAL::Random_points_in_triangle_2
return 是一个迭代器。为了产生一个范围,我需要一个总是 return false 的哨兵。 range-v3 中是否已经有类似的哨兵,还是我必须自己编写一个?
您可以使用 std::unreachable_sentinel
(Or ranges::unreachable
from <range/v3/iterator/unreachable_sentinel.hpp>
):
ranges::subrange randomSamplesRange(randomSamplesGenerator, ranges::unreachable);