Функция std::sort
почему-то не способна сортировать определенную часть вектора. Верхняя граница и нижняя граница части вектора, подлежащего сортировке, вводятся в качестве входных данных вместе с размером вектора и векторных элементов. Вот что я попробовал:
#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;
}
My input:
5
3 -1 4 2 -1
3 4
Expected output:
3 -1 2 4 -1
Actual output:
3 -1 4 2 -1 (unchanged)
Пожалуйста, расскажите, что неверно в этом подходе / какой другой метод можно применить.