我得到了一个随机整数向量v,并希望按照以下标准分成子范围:
auto result = v | ranges::views::chunk_by([](int a, int b) {
return a + 1 == b /* && size of current chunk < 4 */;
});
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?有没有仍然使用ranges库的替代方法?
您可以使用 views::transform应用于views::chunk(4)每个子范围,然后加入它们:
auto result = v | std::views::chunk_by([](int a, int b) {
return a + 1 == b /* && size of current chunk < 4 */;
})
| std::views::transform(std::views::chunk(4))
| std::views::join;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
257 次 |
| 最近记录: |