Vergrößern und verkleinern
Fügen Sie Elemente ein, entfernen und skalieren Sie sie.
Vergrößern und verkleinern ist eine kostenlose Learn Rust Coding-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn Rust Coding-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.
Vektoren können ihre Größe ändern
Eine wichtige Eigenschaft von Vektoren ist, dass sie ihre Größe zur Laufzeit ändern können. Sie können Elemente hinzufügen, wenn mehr Daten vorliegen, und sie entfernen, wenn Sie sie nicht mehr benötigen.
Für jede Größenänderung muss der Vektor als mut deklariert sein.
Mit push vergrößern
Die Methode push fügt ein einzelnes Element am Ende hinzu und vergrößert den Vektor um eins. Das ist die häufigste Möglichkeit, einen Vektor zu vergrößern.
Unten wächst der Vektor von der Länge 0 auf die Länge 3.
fn main() {
let mut v = Vec::new();
v.push("a");
v.push("b");
v.push("c");
println!("len = {}", v.len());
}Mit pop entfernen
Die Methode pop entfernt das letzte Element und gibt es verpackt in einem Option zurück. Normalerweise erhalten Sie Some(value); wenn der Vektor bereits leer war, erhalten Sie None.
Dadurch wird der Vektor um eins verkleinert.
fn main() {
let mut v = vec![1, 2, 3];
let last = v.pop();
println!("popped {:?}", last);
println!("now {:?}", v);
}In der Mitte einfügen
Die Methode insert platziert einen Wert an einem bestimmten Index und verschiebt die nachfolgenden Elemente nach rechts. Der Index muss zwischen 0 und der aktuellen Länge liegen.
Hier fügen wir 99 an Position 1 ein.
fn main() {
let mut v = vec![10, 20, 30];
v.insert(1, 99);
println!("{:?}", v);
}Nach Index entfernen
Die Methode remove löscht das Element an einem Index, gibt es zurück und verschiebt die nachfolgenden Elemente nach links, um die Lücke zu füllen.
Achtung: Das Entfernen eines nicht vorhandenen Indexes führt zu einer Panik.
fn main() {
let mut v = vec![10, 20, 30];
let gone = v.remove(0);
println!("removed {}", gone);
println!("{:?}", v);
}Schnelles Entfernen mit swap_remove
Wenn die Reihenfolge keine Rolle spielt, ist swap_remove schneller. Dabei wird das letzte Element an die Stelle des entfernten Elements verschoben, anstatt alle Elemente zu verschieben.
Dadurch ändert sich die Reihenfolge, aber die Kosten für das Verschieben entfallen.
fn main() {
let mut v = vec![1, 2, 3, 4];
let x = v.swap_remove(0);
println!("took {}", x);
println!("{:?}", v);
}Alles leeren
Die Methode clear entfernt alle Elemente auf einmal und hinterlässt einen leeren Vektor mit der Länge 0. Der Vektor behält seine reservierte Kapazität zur Wiederverwendung.
Das ist praktisch, wenn Sie einen Vektor von Grund auf neu füllen möchten.
fn main() {
let mut v = vec![1, 2, 3];
v.clear();
println!("empty? {}", v.is_empty());
}Auf eine bestimmte Länge kürzen
Die Methode truncate kürzt einen Vektor auf eine gewählte Länge, indem sie die überschüssigen Elemente am Ende entfernt. Wenn der Vektor bereits kürzer ist, geschieht nichts.
Hier behalten wir nur die ersten beiden Elemente.
fn main() {
let mut v = vec![1, 2, 3, 4, 5];
v.truncate(2);
println!("{:?}", v);
}Mit extend zusammenfügen
Die Methode extend hängt jedes Element einer anderen Collection an. Sie entspricht einem Aufruf von push für jedes Element in einem einzigen Schritt.
Unten wird eine zweite Liste an das Ende der ersten angehängt.
fn main() {
let mut v = vec![1, 2];
v.extend(vec![3, 4, 5]);
println!("{:?}", v);
}Mit retain nur bestimmte Elemente behalten
Die Methode retain behält nur die Elemente, die einen Test bestehen, und entfernt den Rest direkt im Vektor. Sie übergeben ihr eine Closure, die einen booleschen Wert zurückgibt.
Hier behalten wir nur die geraden Zahlen.
fn main() {
let mut v = vec![1, 2, 3, 4, 5, 6];
v.retain(|n| n % 2 == 0);
println!("{:?}", v);
}Elemente sortieren
Die Methode sort ordnet die Elemente direkt im Vektor vom kleinsten zum größten. Sie ändert nicht die Länge, sondern nur die Anordnung.
Zum Sortieren muss der Vektor mut sein.
fn main() {
let mut v = vec![3, 1, 4, 1, 5];
v.sort();
println!("{:?}", v);
}Kurzer Test
Testen Sie Ihr Verständnis vom Vergrößern und Verkleinern von Vektoren.
Zusammenfassung
Sie haben Vektoren mit push, insert und extend vergrößert und mit pop, remove, swap_remove, clear und truncate verkleinert.
Außerdem haben Sie mit retain gefiltert und mit sort sortiert. Als Nächstes speichern Sie Structs in Vektoren.
Häufig gestellte Fragen
Ist die Lektion „Vergrößern und verkleinern“ kostenlos?
Ja — der vollständige Text von „Vergrößern und verkleinern“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn Rust Coding-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn Rust Coding-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Vergrößern und verkleinern“?
Fügen Sie Elemente ein, entfernen und skalieren Sie sie. Du übst Learn Rust Coding mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn Rust Coding zu starten?
Keine Vorkenntnisse erforderlich. Learn Rust Coding auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Vergrößern und verkleinern“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn Rust Coding-Lektion Code schreiben und ausführen?
Ja. Jede Learn Rust Coding-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Vektoren erstellen und füllen
- Indizieren und iterieren
- Vergrößern und verkleinern
- Vektoren aus Structs