首页 > 解决方案 > 改变范围视图的元素

问题描述

我有一个 enums 的二维向量std::vector<std::vector<enum>>, enum 可以有 values a (0), b (1), c(2)。我想将其中一个随机设置为ac并认为我会尝试范围库。

目前,我可以使用以下方法查看a2d 向量中的所有 s:

auto g = view::join(vec) | filter([](my_enum x){ return x == my_enum::a; };

我发现view::sample随机选择一个元素听起来很有用,但不知道如何使用它,因为我对它需要作为参数的另一个范围的大小感到困惑?(查看::示例文档)

下一步也是对随机选择的元素进行变异。据我了解,ranges::v3::view仅提供关于元素的非可变视图。那么是否有可能改变选定的元素?

标签: c++range-v3

解决方案


推荐阅读