Скорее всего вопрос поставлен неправильно. У вас есть либо значение, либо некая область памяти, которое указывает на какое-то значение.
Так, если вы пишите что то вроде std::vector<int> это означает что у вас вектор хранит значения типа int, если вы пишите std::vector<int*> это означает что у вас вектор хранит указатели на область памяти, которые хранят int.
Во втором случае условно говоря, значения int могут зависеть от того, на какую область памяти указывает другая переменная. Это пример кода.
int a = 5, b = 3;
std::vector<int*> vec {&a, &b};
Теперь если вы будете менять значения переменных a и b, то полученное значение через *vec.at(index), будет браться из этих переменных.
Так же можно использовать конструкцию std::vector<std::reference_wrapper<int>>, для того чтобы использовать семантику ссылок, а не указателей. С ними работать поестесственее.