【Rust】数组切片(一)
环境
- 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}"),
}
}
总结
了解了数组切片中二分查找的使用方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-05-26 JavaWeb:ServletResponse