C++ std::sort()函数无法对向量的一部分进行排序

C++ std::sort()函数无法对向量的一部分进行排序,c++,sorting,vector,C++,Sorting,Vector,排序函数无法对向量的特定部分进行排序。输入要排序的向量部分的上界和下界以及向量和向量元素的大小作为输入。这就是我尝试过的: #include<iostream> #include <vector> #include<algorithm> using namespace std; int main() { long long int N,L,R; cin>>N; vector <long long int> V;

排序函数无法对向量的特定部分进行排序。输入要排序的向量部分的上界和下界以及向量和向量元素的大小作为输入。这就是我尝试过的:

#include<iostream>
#include <vector>
#include<algorithm>
using namespace std;

int main()
{
    long long int N,L,R;
    cin>>N;
    vector <long long int> V;
    while(N--)
    {
        long long int input;
        cin>>input;
        V.push_back(input);
    }
        cin>>L>>R;
        sort(V.begin()+L-1,V.begin()+R-1);
        vector<long long int>::iterator I = V.begin();
        while(I<V.end())
        {
            cout << *I << " ";
            I++;
        }
        cout << endl;
}
请告知此方法中有什么不正确/可以应用其他方法。

第二个参数last指向应排序的最后一个元素的后面。因此,当传递给sort的迭代器是

3 -1 4 2 -1 
     ^-------- first
       ^------ last

然后,范围中只有一个元素需要排序,您得到的输出是预期的。

欢迎使用堆栈溢出!请在你的问题上加一个或一个问候语,请张贴你的实际代码,而不是它的图片。为了了解它有什么问题,我们必须复制它并进行测试。这不能用图像来完成。@OP-创建图像、将其保存为png并链接到它,比简单地获取文本并将其复制到编辑窗口要复杂得多。为什么你要做所有那些不必要的工作来发布你的程序呢?至于你的程序,你根本不检查L和R是什么,但是期望std::sort使用这些值。如果您提供正确的参数,那么std::sort没有问题。亲爱的先生,L和R是用户自己输入的输入,我恐怕无法理解。这也是我第一次问问题,所以我为给您带来的不便向您道歉。
3 -1 4 2 -1 
     ^-------- first
       ^------ last