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
的参数,因此这也不是未定义的行为。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中用vector填充一个简单的动态数组
- vector.resize()中的分配错误
- 使用std::vector的OpenCL矩阵乘法
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 在某些循环内使用vector.push_back时出现分段错误
- 当vector是tje全局变量时,c++中vector的内存管理
- std::vector的包装器,使数组的结构看起来像结构的数组
- 为什么(-1)%vector::size()总是返回0
- 推导 std::vector::back() 的返回类型
- vector.back() 和 vector[vector.size() - 1] 之间的区别?
- vector.push_back(vector.back()+1) 是未定义的行为吗?
- std::vector using back(), pop_back(), push_back(), 得到'double free or corruption'错误
- vector.back()和vector.end()有什么区别
- vector.back() 可以用来为向量的最后一个元素赋值吗?
- 在std::vector中实现back()
- std::vector back()的奇怪行为
- 修改向量后引用 vector.back() 的奇怪行为
- std::vector::back 和 vector::operator[ vector::size() - 1] 之间
- 为什么对std::vector::back()的调用会使我的程序崩溃