Если цель состоит в том, чтобы просто написать повернутый массив, вам не нужно изменять массив или создавать другой.
Примечание: использование двух циклов вместо одного позволяет избежать использования по модулю операции.
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr = {0, 1, 2, 3, 4, 5, 6, 7};
int n = arr.size();
int d = 3;
for (int i = d; i < n; ++i) {
std::cout << arr[i] << " ";
}
for (int i = 0; i < d; ++i) {
std::cout << arr[i] << " ";
}
std::cout << "\n";
return 0;
}