首页 > 解决方案 > vector.push_back(vector.back()+1) 是未定义的行为吗?

问题描述

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

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

标签: c++vectorundefined-behavior

解决方案


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

在进行调用之前对参数进行push_back全面评估,因此这也不是未定义的行为。


推荐阅读