#c #range-v3
#c #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
возвращает итератор. Для создания диапазона мне нужен sentinel, который всегда возвращает false . Есть ли какой-нибудь подобный sentinel уже в range-v3 или я должен сам его закодировать?
Ответ №1:
Вы можете использовать std::unreachable_sentinel
(Или ranges::unreachable
От <range/v3/iterator/unreachable_sentinel.hpp>
):
ranges::subrange randomSamplesRange(randomSamplesGenerator, ranges::unreachable);
Комментарии:
1. Спасибо, это то, что я искал, но G не помог
2. На самом деле, не работает. subrange() не удается построить, а make_subrange завершается с ошибкой из-за отсутствия
is_sized_sentinel_