错误行923:字符34:运行时错误:引用绑定到类型为'value_type'(stl_vector.h)的空指针

时间:2019-07-07 03:35:05

标签: c++

这是我的代码。在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)的空指针  我收到此错误

3 个答案:

答案 0 :(得分:3)

vector<int> seats(0,n);创建一个大小为零的向量(一个空向量),所有元素都初始化为值n(由于没有元素,所以没有意义)。然后seats[j-1]对于j的任何值,都会通过访问索引超出范围而表现出不确定的行为。

您可能打算以相反的顺序传递参数,例如vector<int> seats(n, 0);,这将创建一个n元素的向量,并初始化为零。

答案 1 :(得分:0)

vector &预订的大小可能为零(或为null)。 因此,在代码开头添加以下条件:

if(bookings.size()==0)
{
  ...
}

,然后是左侧代码。

答案 2 :(得分:0)

我遇到了类似的问题 我只是补充说,如果向量的大小为零,则返回“”; 例如-

enter code here
int a = bookings.size();
if(a==0)
{
return "";
}