【发布时间】:2016-07-02 23:16:04
【问题描述】:
我想做类似的事情
std::array<int, 5> array1 = {{ ... }};
const std::array<int, 3>& array2 = array1[1:4]; // [x:y] doesn't exist
也就是说,得到一个数组,它是另一个数组的一种视图,而不必复制它。
【问题讨论】:
-
在 C++ 标准库中,他们通过传递成对的迭代器而不是对数组的引用来解决这个问题。随机访问迭代器可以很容易地偏移子范围。
-
除非你没有告诉编译器第一个和最后一个元素之间的距离。在不知道你有三个元素的情况下,你无法展开循环。