Rust binary_search有bug吗?

J. *_*nne -1 rust

这种生锈binary_search回归Err(2)而不是我的预期Ok(0).这是一个错误吗?

fn main() {
    let x = vec!["slot", "s"];
    let u =  x.binary_search(&"slot");
    println!("{:?}", u);
}
Run Code Online (Sandbox Code Playgroud)

Mat*_* M. 8

.

binary_search期望排序的输入,但您提供了随机排序的输入.

正如着名的查尔斯·巴贝奇(Charles Babbage)所说的那样:垃圾进入垃圾场.

注意:在C++中,我已经崩溃在非排序输出上执行二进制搜索,你很幸运它是Rust;)

  • @Shepmaster:不,这确实是一个排序问题.我也遇到过`std :: sort`被传递错误的排序谓词的问题.算法有时假设给定前置条件*必须*是下一个元素,并且在没有实际检查是否存在一个或者给定的迭代器范围的情况下访问它. (2认同)