Elemente entfernen
Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 13 von 66.
Manchmal musst du Elemente aus einem Vektor entfernen und nicht nur hinzufügen. Rust bietet zwei Hauptmethoden zum Entfernen von Elementen, die jeweils für unterschiedliche Situationen gedacht sind.
Die Methode .pop() 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 und gibt Some(40) zurück
// numbers enthält jetzt [10, 20, 30]Beachte, dass .pop() ein Option zurückgibt – es liefert Some(value), wenn ein Element entfernt werden konnte, oder None, wenn der Vektor bereits leer war. Dadurch kann es auch bei leeren Vektoren sicher verwendet werden.
Die Methode .remove() 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 enthält jetzt ["apple", "cherry"]Wenn du .remove() verwendest, rücken alle Elemente nach dem entfernten Index nach links, um die Lücke zu füllen. Bei großen Vektoren kann dieser Vorgang langsamer sein, wenn du ein Element am Anfang oder in der Mitte entfernst, da viele Elemente verschoben werden müssen.
Beide Methoden setzen voraus, dass der Vektor veränderbar ist, da sie seinen Inhalt ändern. Verwende .pop(), wenn du ein Element am Ende entfernen möchtest, und .remove(), wenn du ein Element an einer bestimmten Position entfernen musst.
Aufgabe
EinfachDu erhältst zwei Eingaben: zuerst eine durch Kommas getrennte Liste von Zahlen und danach einen zu entfernenden Index. Der Startcode liest bereits beide Eingaben ein und wandelt die Zahlen in einen veränderbaren Vektor numbers um. Entferne das Element am angegebenen Index und gib die verbleibenden Elemente in separaten Zeilen aus.
Anforderungen:
- Wandle die zweite Eingabe (
index_input) in eine Ganzzahl um, die den Index darstellt - Verwende
.remove(), um das Element an diesem Index zu entfernen - Gib 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 angibt
Ausgabe: Gib jedes verbleibende Element des Vektors in einer separaten Zeile aus
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 Index ein, an dem ein Element entfernt werden soll
let mut index_input = String::new();
io::stdin().read_line(&mut index_input).expect("Failed to read line");
// Wandelt "10,20,30" in einen Vektor um: an den Kommas aufteilen, jeden Teil als Zahl einlesen und in einem Vec sammeln
let mut numbers: Vec<i32> = numbers_input
.trim()
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// TODO: Schreibe deinen Code unten
// 1. Wandle index_input in eine Ganzzahl um
// 2. Entferne das Element am angegebenen Index
// 3. Gib jedes verbleibende Element in einer eigenen Zeile aus
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler CodeÜbe selbstständig: Online-Rust-Compiler