vector.push_back(vector.back()+1) 是未定义的行为吗?

Is vector.push_back(vector.back()+1) undefined behavior?

本文关键字:vector back push 未定义      更新时间:2023-10-16

我想将一个新值附加到c ++ std::vector,这个新值相对于向量中的最后一个值。此代码会导致未定义的行为吗?

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

vector不是空的,因此您不会因此调用未定义的行为。

在进行调用之前,将完全计算要push_back的参数,因此这也不是未定义的行为。