当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Vec.splice用法及代码示例


本文简要介绍rust语言中 alloc::vec::Vec.splice 的用法。

用法

pub fn splice<R, I>(    &mut self,     range: R,     replace_with: I) -> Splice<'_, I::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-lang.org大神的英文原创作品 alloc::vec::Vec.splice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。