gpt4 book ai didi

C++20:如何按大小分割范围?

转载 作者:行者123 更新时间:2023-12-03 22:59:43 24 4
gpt4 key购买 nike

我想分割范围 {1, 2, 3, 4, 5}到 < 的子范围的范围任何尺寸 >(例如大小为 2: {{1, 2}, {3, 4}, {5}} )。
还有std::views::split仅按分隔符拆分。
是否没有标准的“反向连接”或其他方法可以做到这一点?

最佳答案

range-v3 调用此算法 chunk . C++20 中没有这样的范围适配器,但它是为 C++23 提议的集合的一部分。同名下。 For example :

#include <vector>
#include <range/v3/view/chunk.hpp>
#include <fmt/format.h>
#include <fmt/ranges.h>

int main() {
std::vector v = {1, 2, 3, 4, 5};
fmt::print("{}\n", v | ranges::views::chunk(2)); // prints {{1, 2}, {3, 4}, {5}}
}
对于跨语言的算法,这似乎是一个非常一致的名称选择。 Python 有 chunked , Rust 有 chunks , swift 有 chunks(ofCount: n) , D 有 chunks , 等等。

关于C++20:如何按大小分割范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66928472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com