當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。