У меня есть двумерный вектор перечислений std::vector<std::vector<enum>>
, перечисление может иметь значения a (0), b (1), c(2)
.Я хотел бы случайным образом установить один из a
на c
и подумал, что попробую библиотеку диапазонов.
В настоящее время у меня есть просмотр всех a
в моем 2dвектор, использующий это:
auto g = view::join(vec) | filter([](my_enum x){ return x == my_enum::a; };
Я нашел view::sample
, что звучит полезно для случайного выбора элемента, но я не знал, как его использовать, так как я запутался в размередругой диапазон, который ему нужен в качестве параметра? (view :: sample doc)
Следующим шагом также будет изменение этого случайно выбранного элемента.Насколько я понял, ranges::v3::view
предоставляет только неизменяемое представление элементов.Так возможно ли вообще изменить выбранный элемент?