关于如何使用sort函数排序vector类型的数组

一般情况下有一个 数组arr[10],我们可以这样排序

sort(arr,arr+10,cmp);

但是,比如arr是一个vector动态数组的话,就不能这样调用了

而是要用到begin()函数

sort(arr.begin(),arr.begin()+10,cmp);

下面是一个例子:

// sort algorithm example  
#include <iostream>     // std::cout  
#include <algorithm>    // std::sort  
#include <vector>       // std::vector  
  
bool myfunction (int i,int j) { return (i<j); }  
  
struct myclass {  
  bool operator() (int i,int j) { return (i<j);}  
} myobject;  
  
int main () {  
  int myints[] = {32,71,12,45,26,80,53,33};  
  std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33  
  
  // using default comparison (operator <):  
  std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33  
  
  // using function as comp  
  std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)  
  
  // using object as comp  
  std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)  
  
  // print out content:  
  std::cout << "myvector contains:";  
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)  
    std::cout << ' ' << *it;  
  std::cout << '\n';  
  
  return 0;  
}  



输出为:
[cpp] view plain copy
myvector contains: 12 26 32 33 45 53 71 80  


猜你喜欢

转载自blog.csdn.net/scwmason/article/details/80807937