对于vector的全体排序,我们知道sort(vv.begin(),vv.end())来进行的。

  但是对于如果是局部排序的话,比如,vector有100个元素,但我只想对10-80之间的数进行排序,如何处理?

  这里考虑使用迭代器,一个迭代器指向10的位置,一个迭代器指向80的位置即可:

  

#include<stdio.h>
#include<iostream>
#include<vector>
#include<stdlib.h>
#include<algorithm>
using namespace std; int main(){
int i,j;
vector<int>vv;
for(i=;i<;i++){
vv.push_back(rand()%);
} vector<int>::iterator left,right; left = right = vv.begin(); for(i=;i<;i++){
left ++;
} for(i=;i<;i++){
right ++;
} sort(left,right); for(i=;i<;i++){
printf("%d ",vv[i]);
}
return ;
}

  

04-30 11:58