Menu
Coddy logo textTech

Supprimer des éléments

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 13 sur 66.

Parfois, vous devez supprimer des éléments d'un vecteur, et pas seulement en ajouter. Rust propose deux méthodes principales pour supprimer des éléments, chacune étant 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, renvoie Some(40)
// numbers est maintenant [10, 20, 30]

Remarquez que .pop() retourne un Option - il vous 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 en toute sécurité, même sur des vecteurs vides.

La méthode .remove() supprime un élément à un index spécifique et renvoie cet élément :

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // supprime "banana"
// fruits est maintenant ["apple", "cherry"]

Lorsque vous utilisez .remove(), tous les éléments situés après l'index supprimé se déplacent vers la gauche pour combler le vide. Cette opération peut être plus lente pour les vecteurs de grande taille lors d'une suppression au début ou au milieu, car de nombreux éléments doivent être déplacés.

Les deux méthodes exigent que le vecteur soit mutable puisqu'elles modifient son contenu. Choisissez .pop() lorsque vous voulez supprimer un élément à la fin, et .remove() lorsque vous devez supprimer un élément à une position spécifique.

challenge icon

Défi

Facile

Vous recevrez deux entrées : d'abord, une liste de nombres séparés par des virgules, et ensuite, un index à supprimer. Lisez les deux entrées, créez un vecteur à partir des nombres, supprimez l'élément à l'index spécifié et affichez les éléments restants sur des lignes distinctes.

Exigences :

  • Lisez la première entrée contenant des nombres séparés par des virgules (par exemple, 10,20,30,40,50)
  • Divisez la chaîne par les virgules et convertissez chaque nombre en un entier
  • Créez un vecteur mutable à partir de ces nombres
  • Lisez la deuxième entrée et convertissez-la en un entier représentant l'index
  • Utilisez .remove() pour supprimer l'élément à cet index
  • Affichez chaque élément restant sur une ligne distincte

Entrée :

  • Première ligne : Entiers séparés par des virgules (par exemple, 10,20,30,40,50)
  • Deuxième ligne : Un entier représentant l'index à supprimer

Sortie : Affichez chaque élément restant du vecteur sur une ligne distincte

Aide-mémoire

Rust propose deux méthodes principales pour supprimer des éléments des vecteurs :

La méthode .pop() supprime et renvoie le dernier élément :

let mut numbers = vec![10, 20, 30, 40];
let last = numbers.pop(); // supprime 40, renvoie Some(40)
// numbers est maintenant [10, 20, 30]

.pop() renvoie un type Option - Some(value) si un élément a été supprimé, ou None si le vecteur était vide.

La méthode .remove() supprime un élément à un index spécifique et le renvoie :

let mut fruits = vec!["apple", "banana", "cherry"];
let removed = fruits.remove(1); // supprime "banana"
// fruits est maintenant ["apple", "cherry"]

Lors de l'utilisation de .remove(), tous les éléments après l'index supprimé se décalent vers la gauche pour combler le vide.

Les deux méthodes nécessitent que le vecteur soit mutable. Utilisez .pop() pour supprimer de la fin, et .remove() pour supprimer d'une position spécifique.

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'index à supprimer
    let mut index_input = String::new();
    io::stdin().read_line(&mut index_input).expect("Failed to read line");
    
    // TODO: Écrivez votre code ci-dessous
    // 1. Diviser numbers_input par les virgules et convertir en entiers
    // 2. Créer un vecteur mutable à partir de ces nombres
    // 3. Convertir index_input en un entier
    // 4. Supprimer l'élément à l'index spécifié
    // 5. Afficher chaque élément restant sur une ligne séparée
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow