11 个版本
0.4.1 | 2023年7月4日 |
---|---|
0.3.1 | 2023年5月22日 |
0.3.0 | 2022年1月21日 |
0.2.6 | 2020年12月8日 |
0.2.3 | 2019年11月15日 |
#23 in #pair
18KB
414 代码行(不含注释)
key_vec
按键排序的键值对Vec
let mut v = KeyVec::<i32, char>::new();
v.extend (vec![(10i32, 'a'), (-1, 'b'), (3, 'c'), (-1, 'd')].into_iter());
assert_eq!(*v, vec![(-1i32, 'd'), (3, 'c'), (10, 'a')]);
lib.rs
:
按键排序的键值对Vec,支持'log n'查找。
use key_vec::KeyVec;
let v = KeyVec::from (vec![(5, 'a'), (1, 'b'), (-1, 'c')]);
assert_eq!(*v, vec![(-1, 'c'), (1, 'b'), (5, 'a')]);
assert_eq!(&'c', v.get (&-1).unwrap());
assert!(v.get (&-2).is_none());
从包含重复键的Vec构建时,将保留重复项中的第一个
use key_vec::KeyVec;
let v = KeyVec::from (vec![(5, 'a'), (-10, 'b'), (2, 'c'), (5, 'd')]);
assert_eq!(*v, vec![(-10, 'b'), (2, 'c'), (5, 'a')]);
从迭代器构建或扩展时,迭代器中最后出现的值将覆盖具有相同键的任何先前值
use key_vec::KeyVec;
let mut v = KeyVec::new();
assert!(v.insert (5, 'a').is_none());
v.extend (vec![(10, 'b'), (5, 'c'), (2, 'd'), (5, 'e')]);
assert_eq!(*v, vec![(2, 'd'), (5, 'e'), (10, 'b')]);
依赖项
~175KB