Groeien en krimpen
Voeg elementen in, verwijder ze en pas de grootte aan.
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.
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
- Vectors maken en vullen
- Indexeren en itereren
- Groeien en krimpen
- Vectors met structs