c++ - 按降序对 vector 进行排序

我应该使用

std::sort(numbers.begin(), numbers.end(), std::greater<int>());

std::sort(numbers.rbegin(), numbers.rend());   // note: reverse iterators

按降序对 vector 进行排序?一种方法或另一种方法有什么好处或缺点吗?

最佳答案

实际上,第一个是个坏主意。使用第二个,或者这个:

struct greater
{
    template<class T>
    bool operator()(T const &a, T const &b) const { return a > b; }
};

std::sort(numbers.begin(), numbers.end(), greater());

这样,当有人决定 numbers 应该保存 longlong long 而不是 int

https://stackoverflow.com/questions/9025084/

相关文章:

c++ - 如何检查元素是否在 std::set 中?

c++ - 结合 C++ 和 C - #ifdef __cplusplus 如何工作?

c++ - C++单元测试框架比较

c++ - 在 C++ 中将默认参数值放在哪里?

c++ - 如何在 C 预处理器中可靠地检测 Mac OS X、iOS、Linux、Windows?

c++ - 单例:应该如何使用

c++ - 类成员函数模板可以是虚拟的吗?

c++ - 如何循环遍历 map 的 C++ map ?

c++ - C/C++ 中字符的大小 ('a' )

c++ - 以理智、安全和有效的方式复制文件