Menu
Coddy logo textTech

Elemente entfernen

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 13 von 66.

Manchmal müssen Sie Elemente aus einem Vector entfernen, nicht nur hinzufügen. Rust bietet zwei Hauptmethoden zum Entfernen von Elementen, die jeweils für unterschiedliche Situationen konzipiert sind.

Die .pop() Methode entfernt das letzte Element aus dem Vektor und gibt es zurück:

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // entfernt 40, gibt Some(40) zurück
// numbers ist jetzt [10, 20, 30]

Beachten Sie, dass .pop() ein Option zurückgibt – es liefert Some(value), wenn ein Element zum Entfernen vorhanden war, oder None, wenn der Vektor bereits leer war. Dies macht die Verwendung selbst bei leeren Vektoren sicher.

Die .remove()-Methode entfernt ein Element an einem bestimmten Index und gibt dieses Element zurück:

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // entfernt "banana"
// fruits ist jetzt ["apple", "cherry"]

Wenn Sie .remove() verwenden, verschieben sich alle Elemente nach dem entfernten Index nach links, um die Lücke zu füllen. Diese Operation kann bei großen Vektoren langsamer sein, wenn am Anfang oder in der Mitte entfernt wird, da viele Elemente verschoben werden müssen.

Beide Methoden erfordern, dass der Vektor veränderbar (mutable) ist, da sie dessen Inhalt modifizieren. Wählen Sie .pop(), wenn Sie ein Element am Ende entfernen möchten, und .remove(), wenn Sie ein Element an einer bestimmten Position entfernen müssen.

challenge icon

Aufgabe

Einfach

Sie erhalten zwei Eingaben: erstens eine durch Kommas getrennte Liste von Zahlen und zweitens einen zu entfernenden Index. Lesen Sie beide Eingaben ein, erstellen Sie einen Vektor aus den Zahlen, entfernen Sie das Element am angegebenen Index und geben Sie die verbleibenden Elemente in separaten Zeilen aus.

Anforderungen:

  • Lesen Sie die erste Eingabe ein, die durch Kommas getrennte Zahlen enthält (z. B. 10,20,30,40,50)
  • Teilen Sie die Zeichenfolge nach Kommas auf und konvertieren Sie jede Zahl in eine Ganzzahl
  • Erstellen Sie einen veränderbaren Vektor aus diesen Zahlen
  • Lesen Sie die zweite Eingabe ein und konvertieren Sie diese in eine Ganzzahl, die den Index darstellt
  • Verwenden Sie .remove(), um das Element an diesem Index zu entfernen
  • Geben Sie jedes verbleibende Element in einer separaten Zeile aus

Eingabe:

  • Erste Zeile: Durch Kommas getrennte Ganzzahlen (z. B. 10,20,30,40,50)
  • Zweite Zeile: Eine Ganzzahl, die den zu entfernenden Index darstellt

Ausgabe: Geben Sie jedes verbleibende Element des Vektors in einer separaten Zeile aus

Spickzettel

Rust bietet zwei Hauptmethoden zum Entfernen von Elementen aus Vektoren:

Die Methode .pop() entfernt das letzte Element und gibt es zurück:

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // entfernt 40, gibt Some(40) zurück
// numbers ist jetzt [10, 20, 30]

.pop() gibt einen Option-Typ zurück – Some(value), wenn ein Element entfernt wurde, oder None, wenn der Vektor leer war.

Die Methode .remove() entfernt ein Element an einem bestimmten Index und gibt es zurück:

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // entfernt "banana"
// fruits ist jetzt ["apple", "cherry"]

Bei der Verwendung von .remove() verschieben sich alle Elemente nach dem entfernten Index nach links, um die Lücke zu füllen.

Beide Methoden erfordern, dass der Vektor veränderbar (mutable) ist. Verwenden Sie .pop() zum Entfernen am Ende und .remove() zum Entfernen an einer bestimmten Position.

Probier es selbst

use std::io;

fn main() {
    // Lies die durch Kommas getrennten Zahlen ein
    let mut numbers_input = String::new();
    io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
    
    // Lies den zu entfernenden Index ein
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // TODO: Schreibe deinen Code unten
    // 1. Trenne numbers_input nach Kommas und konvertiere sie in Ganzzahlen
    // 2. Erstelle einen veränderbaren Vektor aus diesen Zahlen
    // 3. Konvertiere index_input in eine Ganzzahl
    // 4. Entferne das Element am angegebenen Index
    // 5. Gib jedes verbleibende Element in einer separaten Zeile aus
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow