关于如何使用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  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值