Это довольно легко сделать с std::valarray
вместо вектора:
#include <valarray>
#include <iostream>
#include <iterator>
#include <algorithm>
int main() {
const std::valarray<int> arr={0,1,2,3,4,5,6,7,8,9,10};
const std::valarray<int>& slice = arr[std::slice(5, // start pos
4, // size
1 // stride
)];
}
, который берет "кусочек" valarray, более обобщенно, чем вектор.
Длявектор, который вы можете сделать с помощью конструктора, который принимает два итератора:
const std::vector<int> arr={0,1,2,3,4,5,6,7,8,9,10};
std::vector<int> slice(arr.begin()+5, arr.begin()+9);