我应该用
std::sort(numbers.begin(), numbers.end(), std::greater<int>());
or
std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators
按降序对向量排序?这两种方法有什么优点或缺点吗?
我应该用
std::sort(numbers.begin(), numbers.end(), std::greater<int>());
or
std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators
按降序对向量排序?这两种方法有什么优点或缺点吗?
当前回答
这个呢?
std::sort(numbers.begin(), numbers.end());
std::reverse(numbers.begin(), numbers.end());
其他回答
bool comp(int i, int j) { return i > j; }
sort(numbers.begin(), numbers.end(), comp);
你可以使用Lambda函数,而不是像Mehrdad建议的那样使用函子。
sort(numbers.begin(), numbers.end(), [](const int a, const int b) {return a > b; });
您可以使用第一个方法,也可以尝试下面同样有效的代码
sort(&a[0], &a[n], greater<int>());
用c++14你可以这样做:
std::sort(numbers.begin(), numbers.end(), std::greater<>());
第一种方法是指:
std::sort(numbers.begin(), numbers.end(), std::greater<>());
你可以使用第一种方法,因为它比第二种方法效率更高。 第一种方法的时间复杂度比第二种方法小。