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


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