我应该使用
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
应该保存 long
或 long long
而不是 int
。
https://stackoverflow.com/questions/9025084/