【发布时间】:2022-01-20 11:56:51
【问题描述】:
例如下面的代码按 desc 顺序对 vec 进行排序:
std::vector<int> vec = {1, 2, 5, 4, 3};
sort(vec.rbegin(), vec.rend());
for(const auto v : vec)
std::cout << v << "\n";
output 5 4 3 2 1
将 [first,last) 范围内的元素按升序排序。对于第一个版本,使用 operator
【问题讨论】:
-
该参考在措辞上本来就不好,但是如果您查看
rbegin()和rend()实际上做了什么,很清楚为什么sort()会这样,尽管“参考”中的措辞"。 -
这应该是关于what
rbeginandrendmean的问题。似乎很清楚std::sort并不是让 OP 感到困惑的原因。该代码声称会产生“输出”,但如果不以相反的顺序读取向量,这里就没有输出。 -
对不起,对于我正在使用的输出 for(const auto v : vec) std::cout
-
@AwesomeJSF 这是一个有用的编辑。那个for循环使用
begin()和end()。其中以rbegin()和rend()的相反顺序迭代。
标签: c++ algorithm sorting iterator reverse-iterator