vector.push_back(vector.back()+1) 是未定义的行为吗?
Is vector.push_back(vector.back()+1) undefined behavior?
我想将一个新值附加到 C++ std::vector,这个新值是相对于向量中最后一个值的。此代码会导致未定义的行为吗?
std::vector<int> vector;
vector.push_back(1);
vector.push_back(vector.back() + 1);
vector
不为空,因此您不会因此调用未定义的行为。
push_back
的参数在调用之前被完全评估,因此这也不是未定义的行为。
我想将一个新值附加到 C++ std::vector,这个新值是相对于向量中最后一个值的。此代码会导致未定义的行为吗?
std::vector<int> vector;
vector.push_back(1);
vector.push_back(vector.back() + 1);
vector
不为空,因此您不会因此调用未定义的行为。
push_back
的参数在调用之前被完全评估,因此这也不是未定义的行为。