假设我有一个称为 rng 的 T 范围。我可以
auto groups = ranges::view::group_by(rng, bin_op);
组现在是一系列 T 的范围。
我也可以这样做
auto groups = ranges::view::group_by(rng, bin_op) | ranges::to_vector;
得到 T 范围的向量。然而这
auto groups = ranges::view::group_by(rng, bin_op)
| ranges::to_vector
| ranges::action::transform([] (auto r) { return r | ranges::to_vector; };
也
auto groups = ranges::view::group_by(rng, bin_op)
| ranges::to_vector
| ranges::action::transform([] (auto r) { return std::vector<T>{} | ranges::action::push_back; };
将不起作用,因为在这种情况下,ranges::action::transform() 显然返回 void 并且“传递给 action::transform 的函数的结果类型必须可写回源范围”。
那么如何将我的范围范围转换为向量的向量呢?
注意:抱歉标签不好,但我找不到 range/ranges-ts/ranges-v3 标签,我不能创建一个标签,也不能在标题中使用它。