我正在尝试在 Rust 中执行以下操作,特别是使用数组(我不想在这里使用向量,并且希望在完成后将元素从数组中推出)。
let mut x = [1, 2, 3, 4, 5];
// array, number to insert, place to be inserted at
insert_in_place(&x, 7, 1);
// x is now [1, 7, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)
如何实现insert_in_place?
我认为有一种方法可以使用切片来做到这一点,但我仍在学习并想知道是否有一种真正优雅的方法来完成这种事情。
ale*_*pha 11
\n
fn insert_in_place<T>(array: &mut [T], value: T, index: usize) {\n *array.last_mut().unwrap() = value;\n array[index..].rotate_right(1);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n或者等价地:
\n\nfn insert_in_place<T>(array: &mut [T], value: T, index: usize) {\n array[index..].rotate_right(1);\n array[index] = value;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
3397 次 |
| 最近记录: |