vector.push_back(vector.back()+;1)行为是否未定义? < >我想把一个新的值附加到一个C++ STD::vector中,这个新的值与向量中的最后一个值相对应。此代码是否会导致未定义的行为 std::vector<int> vector; vector.push_back(1); vector.push_back(vector.back() + 1); std::vector; 向量。推回(1); vector.push_back(vector.back()+1);

vector.push_back(vector.back()+;1)行为是否未定义? < >我想把一个新的值附加到一个C++ STD::vector中,这个新的值与向量中的最后一个值相对应。此代码是否会导致未定义的行为 std::vector<int> vector; vector.push_back(1); vector.push_back(vector.back() + 1); std::vector; 向量。推回(1); vector.push_back(vector.back()+1);,c++,vector,undefined-behavior,C++,Vector,Undefined Behavior,向量不是空的,因此您不会因此调用未定义的行为 在调用之前,push_back的参数将被完全计算,因此这也不是未定义的行为。向量不是空的,因此您不会因此调用未定义的行为 在调用之前,push_back的参数会被完全评估,因此这也不是未定义的行为。您具体关心的代码是什么?@FrançoisAndrieux如果push_back的参数是在函数调用期间评估的,它可能会尝试读取附加到向量的值。但不是在此配置中。您关心的代码具体是什么?@FrançoisAndrieux如果在函数调用期间计算push_bac

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


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

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


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

您具体关心的代码是什么?@FrançoisAndrieux如果push_back的参数是在函数调用期间评估的,它可能会尝试读取附加到向量的值。但不是在此配置中。您关心的代码具体是什么?@FrançoisAndrieux如果在函数调用期间计算push_back的参数,它可能会尝试读取附加到向量的值。它可能会读取,但不在此配置中。有关权利要求2的详细信息,请参阅。有关权利要求2的详细信息,请参阅。