Gibt es eine sichere Möglichkeit, Elemente eines Vektors in Rust zu verschieben? ( vec![1, 2, 3]
wird vec![3]
wenn zwei Plätze nach links verschoben werden). Ich habe es mit Copy
types zu tun, und ich möchte keine höhere Strafe zahlen als das, was ich mit memmove
machen würde.
Die einzige Lösung, die ich gefunden habe, ist unsicher: Verwenden Sie memmove
direkt über ptr::copy
.
Ich würde Vec::drain
verwenden.
Sie können es mit einer Auswahl der Elemente aufrufen, die Sie entfernen möchten, und es wird danach verschoben. Beispiel: ( Laufstall )
%Vor%Eine andere Anmerkung:
Ich habe es mit
Copy
types zu tun, und ich möchte keine höhere Strafe zahlen als das, was ich mitmemmove
machen würde.
Bemerkenswert ist, dass das Verschieben immer a memcpy
in Rust ist, so dass die Unterscheidung Copy
vs nicht Copy
hier keine Rolle spielt. Es wäre das gleiche, wenn die Typen nicht Copy
wären.
Tags und Links rust