本文简要介绍rust语言中 slice.binary_search_by_key
的用法。
用法
pub fn binary_search_by_key<'a, B, F>( &'a self, b: &B, f: F) -> Result<usize, usize> where F: FnMut(&'a T) -> B, B: Ord,
Binary 使用键提取函数搜索这个排序的切片。
假设切片按键排序,例如 sort_by_key
使用相同的键提取函数。
如果找到该值,则返回 Result::Ok
,其中包含匹配元素的索引。如果有多个匹配项,则可以返回任何一个匹配项。该索引是确定性选择的,但在未来的 Rust 版本中可能会发生变化。如果未找到该值,则返回 Result::Err
,其中包含可以插入匹配元素的索引,同时保持排序顺序。
另请参见 binary_search
、 binary_search_by
和 partition_point
。
例子
在按第二个元素排序的对切片中查找一系列四个元素。第一个被发现,具有唯一确定的位置;没有找到第二个和第三个;第四个可以匹配 [1, 4]
中的任何位置。
let s = [(0, 0), (2, 1), (4, 1), (5, 1), (3, 1),
(1, 2), (2, 3), (4, 5), (5, 8), (3, 13),
(1, 21), (2, 34), (4, 55)];
assert_eq!(s.binary_search_by_key(&13, |&(a, b)| b), Ok(9));
assert_eq!(s.binary_search_by_key(&4, |&(a, b)| b), Err(7));
assert_eq!(s.binary_search_by_key(&100, |&(a, b)| b), Err(13));
let r = s.binary_search_by_key(&1, |&(a, b)| b);
assert!(match r { Ok(1..=4) => true, _ => false, });
相关用法
- Rust slice.binary_search_by用法及代码示例
- Rust slice.binary_search用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust slice.iter_mut用法及代码示例
- Rust slice.windows用法及代码示例
- Rust slice.repeat用法及代码示例
- Rust slice.group_by_mut用法及代码示例
- Rust slice.align_to_mut用法及代码示例
- Rust slice.as_chunks_unchecked用法及代码示例
- Rust slice.fill用法及代码示例
- Rust slice.array_windows用法及代码示例
- Rust slice.sort_unstable_by用法及代码示例
- Rust slice.sort用法及代码示例
- Rust slice.rotate_left用法及代码示例
- Rust slice.as_mut_ptr用法及代码示例
- Rust slice.swap_unchecked用法及代码示例
- Rust slice.get_unchecked用法及代码示例
- Rust slice.split_array_mut用法及代码示例
- Rust slice.contains用法及代码示例
- Rust slice.splitn_mut用法及代码示例
- Rust slice.split_first用法及代码示例
- Rust slice.splitn用法及代码示例
- Rust slice.is_sorted_by_key用法及代码示例
- Rust slice.split_array_ref用法及代码示例
- Rust slice.group_by用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 slice.binary_search_by_key。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。