我有一个 int
的 C 数组及其大小,即 int* arr, unsigned size
。我想从中得到类似 View 的东西,它将成对的 int
作为元素。
澄清一下,任务是:我收到一个像 [1,2,3,4]
这样的数组,我想要一个像 [(1,2 ),(3,4)]
.
是否有任何方便的方法通过 boost 或范围(std::ranges 或 range-v3)以这种方式转换数组?
最佳答案
与 range v3 ,您可以使用 ranges::v3::view::chunk(2)
或者创建一个元组:
auto r = ranges::view::counted(p, size);
auto even = r | ranges::view::stride(2);
auto odd = r | ranges::view::drop(1) | ranges::view::stride(2);
auto pairs = ranges::view::zip(even, odd);
关于c++ - 如何从数组生成对 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882570/