Supprimer des éléments
Fait partie de la section Logique & Flux du Journey Rust de Coddy. Leçon 13 sur 66.
Parfois, tu dois supprimer des éléments d’un vecteur, et pas seulement en ajouter. Rust fournit deux méthodes principales pour supprimer des éléments, chacune conçue pour des situations différentes.
La méthode .pop() supprime et renvoie le dernier élément du vecteur :
let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // supprime 40 et renvoie Some(40)
// numbers contient maintenant [10, 20, 30]Remarque que .pop() renvoie une Option : il te donne Some(value) s’il y avait un élément à supprimer, ou None si le vecteur était déjà vide. Cela permet de l’utiliser sans risque, même sur des vecteurs vides.
La méthode .remove() supprime un élément à un indice précis et renvoie cet élément :
let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // supprime "banana"
// fruits contient maintenant ["apple", "cherry"]Lorsque tu utilises .remove(), tous les éléments situés après l’indice supprimé se décalent vers la gauche pour combler le vide. Cette opération peut être plus lente pour les grands vecteurs lorsqu’on supprime un élément au début ou au milieu, car de nombreux éléments doivent être déplacés.
Les deux méthodes nécessitent que le vecteur soit modifiable, puisqu’elles en modifient le contenu. Choisis .pop() lorsque tu veux supprimer un élément à la fin, et .remove() lorsque tu dois le supprimer à une position précise.
Défi
FacileTu recevras deux entrées : d’abord une liste de nombres séparés par des virgules, puis un indice à supprimer. Le code de départ lit déjà les deux entrées et transforme les nombres en un vecteur mutable numbers. Supprime l’élément à l’indice spécifié et affiche les éléments restants sur des lignes distinctes.
Exigences :
- Convertis la deuxième entrée (
index_input) en un entier représentant l’indice - Utilise
.remove()pour supprimer l’élément à cet indice - Affiche chaque élément restant sur une ligne distincte
Entrée :
- Première ligne : des nombres entiers séparés par des virgules (par exemple,
10,20,30,40,50) - Deuxième ligne : un entier représentant l’indice à supprimer
Sortie : Affiche chaque élément restant du vecteur sur une ligne distincte
Essayez vous-même
use std::io;
fn main() {
// Lire les nombres séparés par des virgules
let mut numbers_input = String::new();
io::stdin().read_line(&mut numbers_input).expect("Failed to read line");
// Lire l’indice de l’élément à supprimer
let mut index_input = String::new();
io::stdin().read_line(&mut index_input).expect("Failed to read line");
// Transforme "10,20,30" en vecteur : sépare aux virgules, convertit chaque partie en nombre, puis les rassemble dans un Vec
let mut numbers: Vec<i32> = numbers_input
.trim()
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// TODO: Écrivez votre code ci-dessous
// 1. Convertir index_input en entier
// 2. Supprimer l’élément à l’indice indiqué
// 3. Afficher chaque élément restant sur une ligne distincte
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode finalEntraînez-vous par vous-même : Compilateur Rust en ligne