C++中的运行时错误

ed *_*ale -4 c++ runtime-error vector

我在运行良好的代码块上运行此程序,但在在线判断中,它为输入相同的输入提供运行时错误.我无法弄清楚这个错误的原因是什么.

    vector<int> twoSum(vector<int> &numbers, int target)
    {

     vector<int> c ;

    sort(numbers.begin(),numbers.end()-1);

    vector<int>::iterator i = numbers.begin();
    vector<int>::iterator j = numbers.end()-1;

    while(i<=j)
    {
        int sum = *i + *j;
        if(sum==target)
                           { c.push_back(i-numbers.begin());
                             c.push_back(j-numbers.begin());
                             //cout<<*i<<" "<<*j<<endl;
                             break;

                           }
        else if(sum<target) i++;
        else j--;
    }
    return c;
}
Run Code Online (Sandbox Code Playgroud)

tim*_*rau 7

sort(numbers.begin(),numbers.end()-1);
Run Code Online (Sandbox Code Playgroud)

在空numbers向量上调用此选项会导致运行时错误.它应该是sort(numbers.begin(), numbers.end());

  • 你的意思是空矢量吗?1个元素应该没问题. (3认同)