对于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;
}

 

  

相关文章:

  • 2021-11-05
  • 2022-12-23
  • 2022-12-23
  • 2022-03-09
  • 2022-12-23
  • 2021-12-14
猜你喜欢
  • 2021-10-11
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2021-05-30
相关资源
相似解决方案