C++ 运行时错误:引用绑定到空指针ot类型';int';(Leetcode问题)
试图解决这个问题。变量C++ 运行时错误:引用绑定到空指针ot类型';int';(Leetcode问题),c++,vector,runtime-error,C++,Vector,Runtime Error,试图解决这个问题。变量nums表示包含数字列表(包括消失的数字)的向量 输入向量nums可能为空。使用空向量调用max\u元素函数时会出现此问题。您可以通过向函数传递空向量(例如,[])来简单地测试代码 最简单的解决方案是在函数开头检查输入向量nums是否为空。像这样: vector <int> temp, result; if(nums.size() == 0) return result; int max = *max_element(n
nums
表示包含数字列表(包括消失的数字)的向量
输入向量
nums
可能为空。使用空向量调用max\u元素
函数时会出现此问题。您可以通过向函数传递空向量(例如,[]
)来简单地测试代码
最简单的解决方案是在函数开头检查输入向量nums
是否为空。像这样:
vector <int> temp, result;
if(nums.size() == 0) return result;
int max = *max_element(nums.begin(),nums.end());
...
...
矢量温度,结果;
if(nums.size()==0)返回结果;
int max=*max_元素(nums.begin(),nums.end());
...
...
这将解决您在此处遇到的运行时错误。您确定
nums
中有数据吗?如果不是,那么*max_元素(nums.begin(),nums.end())
肯定会出现错误,因为您将取消引用“null迭代器”。似乎没有编译时错误——这意味着没有语法错误。这与程序的逻辑是否正确无关。如果需要的是程序没有错误编译,那么C++程序就不会有bug。
Line 811: Char 16: runtime error: reference binding to null pointer of type 'int' (stl_iterator.h)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_iterator.h:820:16
vector <int> temp, result;
if(nums.size() == 0) return result;
int max = *max_element(nums.begin(),nums.end());
...
...