我想做类似的事情
std::array<int, 5> array1 = {{ ... }};
const std::array<int, 3>& array2 = array1[1:4]; // [x:y] doesn't exist
Run Code Online (Sandbox Code Playgroud)
也就是说,获取一个数组,它是另一个数组的一种视图,而不必复制它。
如果您使用 valarray 而不是数组,则可以 http://en.cppreference.com/w/cpp/numeric/valarray/slice
编辑:从 C++20 开始,您可以使用std::span引用连续子数组
小智 -5
std::array<int, 3>& array2 = reinterpret_cast<std::array<int, 3>&>(array1);
Run Code Online (Sandbox Code Playgroud)