Ich bringe Rust Code zu RosettaCode bei, um sowohl Rust zu lernen als auch zur Rust Community beizutragen. Was ist die beste idiomatische Methode, um die letzten n -Elemente in eine veränderbare Vec
einzufügen?
Hier ist grob gesagt, was ich geschrieben habe, aber ich möchte sehen, ob es einen besseren Weg gibt:
%Vor%( Playground-Link )
Ich würde empfehlen, Vec::truncate
zu verwenden:
Zusätzlich, ich
saturating_sub
, um den Fall zu behandeln, in dem dies nicht der Fall ist N
Elemente im Vektor vec![]
, um den Zahlenvektor einfach zu erstellen Normalerweise möchten Sie, wenn Sie etwas "pop", diese Werte haben. Wenn Sie die Werte in einem anderen Vektor haben möchten, können Sie Vec::split_off
:
Wenn Sie auf die Elemente zugreifen möchten, aber keinen ganz neuen Vektor erstellen möchten, können Sie Vec::drain
:
Ein alternativer Ansatz wäre die Verwendung von Vec :: drain stattdessen. Dies gibt Ihnen einen Iterator, so dass Sie tatsächlich die Elemente verwenden können, die entfernt werden.
%Vor% Die drain-Methode akzeptiert RangeArgument
in Form von <start-inclusive>..<end-exclusive>
. Sowohl Start als auch Ende können standardmäßig auf den Anfang / das Ende des Vektors verzichtet werden. Also sagen wir oben bei new_len
und laufen bis zum Ende.
Sie sollten sich die Funktion Vec::truncate
ansehen aus der Standard-Bibliothek, die das für Sie tun kann.
( Spielplatz )
%Vor%Tags und Links rust