C++ 中的运行时错误

Runtime Error in C++

我是 运行 这个程序在 codeblocks 上运行良好,但在在线判断中它给出了相同输入的运行时错误。 我无法弄清楚这个错误的原因。

    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;
}
sort(numbers.begin(),numbers.end()-1);

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