降序排序的最佳方法
Best way to sort in descending order
这样排序是不是更省时:
sort(ar,ar+n,greater<int>());
或
bool MyF(int a,int b){ return a>b; }
sort(ar,ar+n,MyF);
取决于 ar
是什么。如果它是一个序列容器,反向迭代器就是你的朋友:
std::sort(ar.rbegin(), ar.rend());
否则,是的,std::greater<int>
似乎适合这项任务...
至于您的两个示例中的哪一个是 "better",嗯,它们在功能上是等效的,前者使用经过测试的标准库功能,可以为您完成工作。坦率地说,我认为没有竞争。
这样排序是不是更省时:
sort(ar,ar+n,greater<int>());
或
bool MyF(int a,int b){ return a>b; }
sort(ar,ar+n,MyF);
取决于 ar
是什么。如果它是一个序列容器,反向迭代器就是你的朋友:
std::sort(ar.rbegin(), ar.rend());
否则,是的,std::greater<int>
似乎适合这项任务...
至于您的两个示例中的哪一个是 "better",嗯,它们在功能上是等效的,前者使用经过测试的标准库功能,可以为您完成工作。坦率地说,我认为没有竞争。