vector如何进行局部排序

  对于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=0;i<100;i++){

        vv.push_back(rand()%100);

    }



    vector<int>::iterator left,right;



    left = right = vv.begin();



    for(i=1;i<10;i++){

        left ++;

    }



    for(i=1;i<80;i++){

        right ++;

    }



    sort(left,right);



    for(i=0;i<100;i++){

        printf("%d ",vv[i]);

    }

    return 0;

}

 

  

你可能感兴趣的:(vector)