【发布时间】:2018-12-18 17:35:20
【问题描述】:
如何检查切片是否已排序?
假设一个函数接受i32 的切片,是否有一种惯用的 Rust 方法来检查切片是否已排序?
fn is_sorted(data: &[i32]) -> bool {
// ...
}
是否可以概括上述方法,使其接受迭代器?
fn is_sorted<I>(iter: I)
where
I: Iterator,
I::Item: Ord,
{
// ...
}
【问题讨论】:
-
测试每个后续元素是否始终大于或小于前一个元素?
-
作为记录,目前有一个RFC用于将
is_sorted添加到标准库github.com/rust-lang/rfcs/pull/2351。
标签: sorting iterator rust slice