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)
请告诉您此方法的错误之处/可以应用的其他方法。
答案 0 :(得分:3)
第二个参数('?'
)指向最后一个应该排序的元素。因此,当您传递进行排序的迭代器时,
last
那么范围内只有一个要排序的元素,并且期望得到的输出。