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