rust - 为什么 slice::binary_search 返回不正确的结果?

标签 rust

在下面的程序中,binary_search 返回 Err(2) 而不是预期的 Ok(0)。这是错误吗?

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

最佳答案

binary_search 需要一个已排序 输入,但您提供了一个随机排序的输入。

正如查尔斯·巴贝奇 (Charles Babbage) 的著名属性:垃圾输入,垃圾输出

注意:在 C++ 中,我在对未排序的输出执行二进制搜索时遇到过崩溃,你很幸运,它是 Rust ;)

关于rust - 为什么 slice::binary_search 返回不正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804973/

相关文章:

rust - 将 Result 上的迭代器转换为 Result<Vec<_>, _>

rust - 一个简单的测试用例来检查我对 Rust 生命周期的理解

在 C 中工作时,在 Rust 中使用 Linux 的直接渲染管理器在 dumbuffer 上调用 mmap 失败

rust - 在 Result<Option<T>> 的情况下简化 Rust 中的错误处理

xml - 以安全的 Rust 方式切片 XML 字符串

rust - 我的空 Rust 项目无法编译,我该怎么办?

rust - Rust Web程序集无法构建,并带有openssl错误

dependencies - Cargo 无法下载 nom v0.5.0

rust - 如何获取Rayon的par_chunks_mut中的chunk index

rust - 如何通过引用编辑 `Option`中的值