本文简要介绍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 VecDeque.pop_back用法及代码示例
- Rust VecDeque.push_back用法及代码示例
- Rust VecDeque.push_front用法及代码示例
- Rust VecDeque.pop_front用法及代码示例
- Rust VecDeque.binary_search_by_key用法及代码示例
- Rust VecDeque.rotate_left用法及代码示例
- Rust VecDeque.remove用法及代码示例
- Rust VecDeque.swap_remove_back用法及代码示例
- Rust VecDeque.contains用法及代码示例
- Rust VecDeque.iter用法及代码示例
- Rust VecDeque.split_off用法及代码示例
- Rust VecDeque.reserve_exact用法及代码示例
- Rust VecDeque.capacity用法及代码示例
- Rust VecDeque.is_empty用法及代码示例
- Rust VecDeque.resize用法及代码示例
- Rust VecDeque.back用法及代码示例
- Rust VecDeque.new用法及代码示例
- Rust VecDeque.resize_with用法及代码示例
- Rust VecDeque.as_mut_slices用法及代码示例
- Rust VecDeque.front用法及代码示例
- Rust VecDeque.try_reserve_exact用法及代码示例
- Rust VecDeque.clear用法及代码示例
- Rust VecDeque.with_capacity_in用法及代码示例
- Rust VecDeque.front_mut用法及代码示例
- Rust VecDeque.try_reserve用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::collections::VecDeque.partition_point。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。