本文簡要介紹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 Vec.splice用法及代碼示例
- 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-lang.org大神的英文原創作品 alloc::vec::Vec.splice。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。