Является ли поведение vector.push_back (vector.back () + 1) неопределенным? - PullRequest
1 голос
/ 28 мая 2020

Я хочу добавить новое значение в c ++ std :: vector, и это новое значение будет относиться к последнему значению в векторе. Может ли этот код привести к неопределенному поведению?

std::vector<int> vector;
vector.push_back(1);
vector.push_back(vector.back() + 1);

1 Ответ

4 голосов
/ 28 мая 2020

vector не является пустым, поэтому вы не вызываете неопределенное поведение из-за этого.

Параметр push_back полностью вычисляется перед вызовом, так что это не неопределенное поведение либо.

...