Задать вопрос
mrjbom
@mrjbom

Инициализация пустого вектора int по умолчанию?

Есть такой код:
vector<int> vec;
vector[2] = 12;


Почему он валидный? Ведь мы не указали размер, он же должен быть по умолчанию быть абсолютно пустым?
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Код компилируется, но из этого не следует, что он валидный.
В данном случае, тут UB и программа будет вести себя непредсказуемо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
Он просто скомпилировался как
vector<int> vec;
int& tmp = vec.operator [] (2);
operator = (tmp, 12);

Так что всё валидно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы