Контейнеры в c++ предназначены для хранения только констант или могут хранить и переменные?

Marsel.O
  · 569
программирую в свободное и несвободное время

Скорее всего вопрос поставлен неправильно. У вас есть либо значение, либо некая область памяти, которое указывает на какое-то значение.

Так, если вы пишите что то вроде 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>>, для того чтобы использовать семантику ссылок, а не указателей. С ними работать поестесственее.

1 эксперт подтверждает
Комментировать ответ…
Вы знаете ответ на этот вопрос?
Поделитесь своим опытом и знаниями
Войти и ответить на вопрос