当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust VecDeque.partition_point用法及代码示例


本文简要介绍rust语言中 std::collections::VecDeque.partition_point 的用法。

用法

pub fn partition_point<P>(&self, pred: P) -> usize where    P: FnMut(&T) -> bool,

根据给定的谓词返回分区点的索引(第二个分区的第一个元素的索引)。

假设双端队列根据给定的谓词进行分区。这意味着谓词返回 true 的所有元素都位于双端队列的开头,谓词返回 false 的所有元素都位于末尾。例如,[7, 15, 3, 5, 4, 12, 6] 是谓词 x % 2 != 0 下的一个分区(所有奇数都在开头,所有偶数都在结尾)。

如果此双端队列未分区,则返回的结果是未指定且无意义的,因为此方法执行一种二分查找。

另请参见 binary_search binary_search_by binary_search_by_key

例子

use std::collections::VecDeque;

let deque: VecDeque<_> = vec![1, 2, 3, 3, 5, 6, 7].into();
let i = deque.partition_point(|&x| x < 5);

assert_eq!(i, 4);
assert!(deque.iter().take(i).all(|&x| x < 5));
assert!(deque.iter().skip(i).all(|&x| !(x < 5)));

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::collections::VecDeque.partition_point。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。