gpt4 book ai didi

rust - Vec> 按第一个元素升序排序,当第一个元素相等时按第二个元素降序排序

转载 作者:行者123 更新时间:2023-12-05 09:30:47 29 4
gpt4 key购买 nike

例如 [[5,6][2,3][2,5][2,9][1,6]]先按第一个元素升序排序,当一个元素相等时,按第二个元素降序排序,得到[1,6],[2,9],[2,5],[2,3] ],[5,6]

最佳答案

您可以将 sort_by_key() 与一个键函数一起使用,该函数返回第一个子元素的元组,后跟包含在 std::cmp::Reverse 中的第二个子元素。反转比较:

v.sort_by_key(|x| (x[0], Reverse(x[1])));

Playground

如果您需要使用比较函数而不是键函数进行排序(例如,由于后者的 limitations when returning references ),可以使用 Ordering::then_with() 很好地表达比较器:

v.sort_by(|a, b| a[0].cmp(&b[0]).then_with(|| b[1].cmp(&a[1])));

关于rust - Vec<Vec<i32>> 按第一个元素升序排序,当第一个元素相等时按第二个元素降序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69325317/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com