mrjbom
@mrjbom

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

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


Почему он валидный? Ведь мы не указали размер, он же должен быть по умолчанию быть абсолютно пустым?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
gbg
@gbg
Баянист. Тамада. Услуги.
Код компилируется, но из этого не следует, что он валидный.
В данном случае, тут UB и программа будет вести себя непредсказуемо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
Он просто скомпилировался как
vector<int> vec;
int& tmp = vec.operator [] (2);
operator = (tmp, 12);

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

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

Войти через центр авторизации
Похожие вопросы
igooods Санкт-Петербург
от 120 000 до 180 000 ₽
МТС Москва
от 140 000 до 250 000 ₽
РГСофт Логистика Новосибирск
от 100 000 до 120 000 ₽