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


Rust BTreeMap.range用法及代碼示例


本文簡要介紹rust語言中 alloc::collections::btree_map::BTreeMap.range 的用法。

用法

pub fn range<T: ?Sized, R>(&self, range: R) -> Range<'_, K, V> where    T: Ord,    K: Borrow<T> + Ord,    R: RangeBounds<T>,

在映射中的 sub-range 個元素上構造一個雙端迭代器。最簡單的方法是使用範圍語法 min..max ,因此 range(min..max) 將產生從 min(包括)到 max(不包括)的元素。該範圍也可以輸入為 (Bound<T>, Bound<T>) ,因此例如 range((Excluded(4), Included(10))) 將產生一個從 4 到 10 的 left-exclusive、right-inclusive 範圍。

Panics

如果範圍 start > end 出現Panics。如果範圍 start == end 和兩個邊界都是 Excluded ,則會出現Panics。

例子

基本用法:

use std::collections::BTreeMap;
use std::ops::Bound::Included;

let mut map = BTreeMap::new();
map.insert(3, "a");
map.insert(5, "b");
map.insert(8, "c");
for (&key, &value) in map.range((Included(&4), Included(&8))) {
    println!("{}: {}", key, value);
}
assert_eq!(Some((&5, &"b")), map.range(4..).next());

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 alloc::collections::btree_map::BTreeMap.range。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。