Leer programmeren met Rust · Les

Groeien en krimpen

Voeg elementen in, verwijder ze en pas de grootte aan.

Les 3 van 413 stappen

Groeien en krimpen is een gratis Leer programmeren met Rust-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer programmeren met Rust. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer programmeren met Rust bevat in totaal 4 lessen.

Vectoren kunnen van grootte veranderen

Een belangrijk kenmerk van vectoren is dat ze tijdens runtime van grootte kunnen veranderen. Je kunt elementen toevoegen wanneer je meer data hebt en ze verwijderen wanneer je ze niet meer nodig hebt.

Voor elke wijziging van de grootte moet de vector als mut zijn gedeclareerd.

Groeien met push

De methode push voegt één element aan het einde toe, waardoor de vector één element groter wordt. Dit is de meest gebruikelijke manier om een vector te laten groeien.

Hieronder groeit de vector van lengte 0 naar lengte 3.

fn main() {
    let mut v = Vec::new();
    v.push("a");
    v.push("b");
    v.push("c");
    println!("len = {}", v.len());
}

Verwijderen met pop

De methode pop verwijdert het laatste element en geeft dit terug, verpakt in een Option. Normaal krijg je Some(value) en als de vector al leeg was krijg je None.

Hierdoor wordt de vector één element kleiner.

fn main() {
    let mut v = vec![1, 2, 3];
    let last = v.pop();
    println!("popped {:?}", last);
    println!("now {:?}", v);
}

Invoegen in het midden

De methode insert plaatst een waarde op een bepaalde index en schuift latere elementen naar rechts. De index moet vanaf 0 tot en met de huidige lengte liggen.

Hier voegen we 99 in op positie 1.

fn main() {
    let mut v = vec![10, 20, 30];
    v.insert(1, 99);
    println!("{:?}", v);
}

Verwijderen op index

De methode remove verwijdert het element op een index, retourneert het en schuift latere elementen naar links om de vrijgekomen plek op te vullen.

Let op: als je een index verwijdert die niet bestaat, treedt er een panic op.

fn main() {
    let mut v = vec![10, 20, 30];
    let gone = v.remove(0);
    println!("removed {}", gone);
    println!("{:?}", v);
}

Snel verwijderen met swap_remove

Als de volgorde niet belangrijk is, is swap_remove sneller. Deze methode verplaatst het laatste element naar de vrijgekomen plek in plaats van alles te verschuiven.

Hierdoor verandert de volgorde, maar voorkom je de kosten van het verschuiven.

fn main() {
    let mut v = vec![1, 2, 3, 4];
    let x = v.swap_remove(0);
    println!("took {}", x);
    println!("{:?}", v);
}

Alles wissen

De methode clear verwijdert alle elementen in één keer en laat een lege vector met lengte 0 achter. De vector behoudt zijn toegewezen capaciteit voor hergebruik.

Dit is handig wanneer je een vector vanaf nul opnieuw wilt vullen.

fn main() {
    let mut v = vec![1, 2, 3];
    v.clear();
    println!("empty? {}", v.is_empty());
}

Afkappen tot een lengte

De methode truncate verkort een vector tot een gekozen lengte door de extra elementen aan het einde te verwijderen. Als de vector al korter is, gebeurt er niets.

Hier behouden we alleen de eerste twee elementen.

fn main() {
    let mut v = vec![1, 2, 3, 4, 5];
    v.truncate(2);
    println!("{:?}", v);
}

Samenvoegen met extend

De methode extend voegt elk item uit een andere verzameling achteraan toe. Het is alsof je in één stap voor elk element push aanroept.

Hieronder wordt een tweede lijst aan het einde van de eerste toegevoegd.

fn main() {
    let mut v = vec![1, 2];
    v.extend(vec![3, 4, 5]);
    println!("{:?}", v);
}

Alleen bepaalde elementen behouden met retain

De methode retain behoudt alleen de elementen die voor een toets slagen en verwijdert de rest op hun plaats. Je geeft de methode een closure die een bool retourneert.

Hier behouden we alleen de even getallen.

fn main() {
    let mut v = vec![1, 2, 3, 4, 5, 6];
    v.retain(|n| n % 2 == 0);
    println!("{:?}", v);
}

Elementen sorteren

De methode sort zet elementen op hun plaats opnieuw in volgorde van klein naar groot. De lengte verandert niet, alleen de volgorde.

Voor sorteren moet de vector mut zijn.

fn main() {
    let mut v = vec![3, 1, 4, 1, 5];
    v.sort();
    println!("{:?}", v);
}

Korte controle

Toets je begrip van het groter en kleiner maken van vectoren.

Samenvatting

Je hebt vectoren groter gemaakt met push, insert en extend, en kleiner gemaakt met pop, remove, swap_remove, clear en truncate.

Je hebt ook gefilterd met retain en geordend met sort. Hierna sla je structs op in vectoren.

Gratis beginnen

Leer Rust met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
39
Lessen
144

Veelgestelde vragen

Is de les “Groeien en krimpen” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer programmeren met Rust, waaronder “Groeien en krimpen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer programmeren met Rust bevat in totaal 4 lessen.

Wat leer ik in “Groeien en krimpen”?

Voeg elementen in, verwijder ze en pas de grootte aan. Je oefent met Leer programmeren met Rust door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer programmeren met Rust te beginnen?

Ervaring vooraf is niet nodig. Leer programmeren met Rust op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Groeien en krimpen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer programmeren met Rust?

Ja. Elke les over Leer programmeren met Rust bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Vectors maken en vullen
  2. Indexeren en itereren
  3. Groeien en krimpen
  4. Vectors met structs
← Terug naar Leer programmeren met Rust