【Rust】陣列切片(一)
阿新 • • 發佈:2022-05-26
環境
- Time 2022-02-25
- Rust 1.59.0
概念
引用陣列中連續的一部分。
示例
二分查詢-命中
如果查詢到了,返回 Ok 和找到的位置索引。
fn main() { let arr = [1, 2, 3, 4]; let result = arr.binary_search(&2); match result { Ok(index) => println!("find index: {index}"), Err(index) => println!("not find index: {index}"), } }
二分查詢-未命中
如果未查詢到,返回 Err 和應該插入的位置索引。
fn main() {
let arr = [1, 2, 3, 4];
let result = arr.binary_search(&0);
match result {
Ok(index) => println!("find index: {index}"),
Err(index) => println!("not find index: {index}"),
}
}
根據比較函式搜尋
fn main() { let arr = [1, 2, 3, 4]; let result = arr.binary_search_by(|v| v.cmp(&2)); match result { Ok(index) => println!("find index: {index}"), Err(index) => println!("not find index: {index}"), } }
根據自定義屬性搜尋
fn main() {
let arr = [(1, 10), (2, 20), (3, 30), (4, 40)];
let result = arr.binary_search_by_key(&20, |&(_, b)| b);
match result {
Ok(index) => println!("find index: {index}"),
Err(index) => println!("not find index: {index}"),
}
}
總結
瞭解了陣列切片中二分查詢的使用方式。