使いたかったときにぱっと書けず悶々としたので共有します。
@Kogia_sima さんにコメントで教えていただきました!!!
vec.sort_by(
|a, b| a.0.cmp(&b.0).then(a.1.cmp(&b.1))
);
ここからが下が元記事です(↑の方がエレガントです)
use std::cmp::Ordering;
// (中略)
let mut vec = vec![];
vec.push((1, 2));
vec.push((2, 3));
vec.push((2, 2));
vec.push((3, 1));
vec.sort_by(|a, b| match a.0.cmp(&b.0) {
Ordering::Equal => a.1.cmp(&b.1),
other => other, // ここの変数名はお好みで。
});
println!("{:?}", vec); // [(1, 2), (2, 2), (2, 3), (3, 1)]
ちょっとめんどい。