这是我的代码。在leetcode上运行时出现运行时错误,请帮帮我。
我已经尝试了所有类似类型的已经回答的问题,但是我的代码无法正常工作。将unsigned转换为int并确保向量不为空。
class Solution {
public:
vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
vector<int> seats(0,n);
int a = bookings.size();
for(int i=0;i<a;i++){
int c=bookings[i][0], d=bookings[i][1];
for(int j=c;j<=d;j++){
seats[j-1]=bookings[i][2]+seats[j-1];
}
}
return seats;
}
};
第923行:字符34:运行时错误:引用绑定到类型为'value_type'(stl_vector.h)的空指针 我收到此错误
答案 0 :(得分:3)
vector<int> seats(0,n);
创建一个大小为零的向量(一个空向量),所有元素都初始化为值n
(由于没有元素,所以没有意义)。然后seats[j-1]
对于j
的任何值,都会通过访问索引超出范围而表现出不确定的行为。
您可能打算以相反的顺序传递参数,例如vector<int> seats(n, 0);
,这将创建一个n
元素的向量,并初始化为零。
答案 1 :(得分:0)
vector
if(bookings.size()==0)
{
...
}
,然后是左侧代码。
答案 2 :(得分:0)
我遇到了类似的问题 我只是补充说,如果向量的大小为零,则返回“”; 例如-
enter code here
int a = bookings.size();
if(a==0)
{
return "";
}