【发布时间】:2012-02-19 22:58:56
【问题描述】:
我应该使用
std::sort(numbers.begin(), numbers.end(), std::greater<int>());
或
std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators
按降序对向量进行排序?一种方法或另一种方法有什么好处或缺点吗?
【问题讨论】:
-
+1 我认为答案很明显,但是这个问题有一点有趣的琐事。 :)
-
我会投票给第一个选项,因为那样我就不必处理
reverse_iterator的问题了。 -
@wilhelmtell 一个菜鸟问题,但为什么第二个要按降序排列?我们将相同的数组作为 sort 方法的输入。只是我们以相反的顺序给出它,那么为什么它应该按降序而不是升序排序,就像 ar.begin() 和 ar.end 的情况一样。
-
@shshnk
std::sort(b, e);将最小值放在b(在我们的例子中是rbegin,所以是 last 元素),最大值放在e(在我们的caserend,所以 first 元素)。 -
这能回答你的问题吗? Sorting vector elements in descending order
标签: c++ sorting stl vector iterator