Вы можете использовать указатели: -
vector<int> myCuteVector = {1,2,3,4};
vector<int*> myCuteSubVector;
for(int i = startPos; i < endPos; ++i)
myCuteSubVector.emplace_back(&myCuteVector[i]); //or you can use push_back()
Где startPos и endPos (исключая) указывает индексы из исходного массива, которые вы хотите изменить ...
Затем, чтобы изменить значение в позиции 'j' (которое должно быть между [startPos, endPos)) относительно исходного массива: -
*myCuteSubVector[j - startPos] = 123;
Конечно, в вашем конкретном случае c вы можете просто написать как это: -
vector<int> myCuteVector = {1,2,3,4};
vector<int*> myCuteSubVector = {&myCuteVector[0], &myCuteVector[1]};
*myCuteSubVector[0] = 5;
Не знаю, почему вы хотите это сделать ...