c++ - vector.push_back(vector.back()+1) 是未定义的行为吗?
问题描述
我想将一个新值附加到 c++ std::vector 并且这个新值相对于向量中的最后一个值。此代码会导致未定义的行为吗?
std::vector<int> vector;
vector.push_back(1);
vector.push_back(vector.back() + 1);
解决方案
不是空的vector
,因此您不会因此而调用未定义的行为。
在进行调用之前对参数进行push_back
全面评估,因此这也不是未定义的行为。
推荐阅读
- c# - 有没有办法在 C# ASP.NET Core MVC 中功能性地执行 RedirectToAction?
- python - 为什么我的输出结果应该在 Python 中以相反的顺序显示确切的数字时不显示 0。不将参数变量更改为字符串
- python - Selenium webdriver - 使用特定 Chrome 配置文件时忽略首选项
- c# - 如何使用实体框架选择 2 列?
- c# - 从 Azure Blob C# 下载图像
- kubernetes - 尽管我们的工作已经完成,但 Kubernets 部署尚未完成:'未就绪状态的容器:[main]'
- javascript - 如何有效地在 wordpress 主题中包含 smoothState.js 或任何 JS 库
- python - NumPy:沿矩阵的对角线构造正方形/扩展对角矩阵
- turtle-graphics - 如何从浏览器执行服务器中的代码
- powershell - “code”命令在 Windows 11 上不起作用,尽管它在 PATH 中