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

Интересный вопрос
Лучший ответ
программирую в свободное и несвободное время

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

Так, если вы пишите что то вроде 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
Написать комментарий

0/140Ответ не может быть меньше 140 символов