本文简要介绍rust语言中 std::vec::Vec.splice
的用法。
用法
pub fn splice<R, I>( &mut self, range: R, replace_with: I) -> Splice<'_, <I as IntoIterator>::IntoIter, A> where R: RangeBounds<usize>, I: IntoIterator<Item = T>,
创建一个拼接迭代器,用给定的 replace_with
迭代器替换向量中的指定范围,并产生删除的项目。 replace_with
不需要与 range
的长度相同。
range
被删除,即使迭代器直到最后都没有被消耗。
如果 Splice
值泄露,则未指定从向量中删除多少元素。
输入迭代器 replace_with
仅在删除 Splice
值时才使用。
这是最佳的,如果:
- 尾部(
range
之后向量中的元素)为空, - 或
replace_with
产生的元素少于或等于range
的长度 - 或者其
size_hint()
的下限是准确的。
否则,分配一个临时向量,并且尾部移动两次。
Panics
如果起点大于终点或终点大于向量的长度,则会出现Panics。
例子
let mut v = vec![1, 2, 3];
let new = [7, 8];
let u: Vec<_> = v.splice(..2, new).collect();
assert_eq!(v, &[7, 8, 3]);
assert_eq!(u, &[1, 2]);
相关用法
- Rust Vec.split_off用法及代码示例
- Rust Vec.split_at_spare_mut用法及代码示例
- Rust Vec.spare_capacity_mut用法及代码示例
- Rust Vec.swap_remove用法及代码示例
- Rust Vec.shrink_to_fit用法及代码示例
- Rust Vec.set_len用法及代码示例
- Rust Vec.shrink_to用法及代码示例
- Rust Vec.drain用法及代码示例
- Rust Vec.into_raw_parts用法及代码示例
- Rust Vec.resize用法及代码示例
- Rust Vec.is_empty用法及代码示例
- Rust Vec.reserve_exact用法及代码示例
- Rust Vec.retain_mut用法及代码示例
- Rust Vec.try_reserve_exact用法及代码示例
- Rust Vec.new_in用法及代码示例
- Rust Vec.insert用法及代码示例
- Rust Vec.retain用法及代码示例
- Rust Vec.with_capacity用法及代码示例
- Rust Vec.from_raw_parts用法及代码示例
- Rust Vec.into_boxed_slice用法及代码示例
- Rust Vec.reserve用法及代码示例
- Rust Vec.dedup_by用法及代码示例
- Rust Vec.as_mut_slice用法及代码示例
- Rust Vec.dedup用法及代码示例
- Rust Vec.as_ptr用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::vec::Vec.splice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。