Powiększanie i zmniejszanie
Wstawi, usunie i zmieni rozmiar elementów.
Powiększanie i zmniejszanie to bezpłatna lekcja Learn Rust Coding na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn Rust Coding, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.
Wektory mogą zmieniać rozmiar
Kluczową cechą wektorów jest możliwość zmiany rozmiaru podczas działania programu. Możesz dodawać elementy, gdy masz więcej danych, i usuwać je, gdy nie są już potrzebne.
Każda zmiana rozmiaru wymaga zadeklarowania wektora jako mut.
Zwiększanie za pomocą push
Metoda push dodaje pojedynczy element na końcu, zwiększając wektor o jeden element. To najczęstszy sposób powiększania wektora.
Poniżej wektor zwiększa długość z 0 do 3.
fn main() {
let mut v = Vec::new();
v.push("a");
v.push("b");
v.push("c");
println!("len = {}", v.len());
}Usuwanie za pomocą pop
Metoda pop usuwa i zwraca ostatni element opakowany w Option. Zwykle otrzymasz Some(value), a jeśli wektor był już pusty — None.
W ten sposób wektor zmniejsza się o jeden element.
fn main() {
let mut v = vec![1, 2, 3];
let last = v.pop();
println!("popped {:?}", last);
println!("now {:?}", v);
}Wstawianie w środku
Metoda insert umieszcza wartość pod danym indeksem i przesuwa późniejsze elementy w prawo. Indeks musi mieścić się od 0 do bieżącej długości wektora.
Tutaj wstawiamy wartość 99 na pozycji 1.
fn main() {
let mut v = vec![10, 20, 30];
v.insert(1, 99);
println!("{:?}", v);
}Usuwanie według indeksu
Metoda remove usuwa element o podanym indeksie, zwraca go i przesuwa późniejsze elementy w lewo, aby wypełnić powstałą lukę.
Uwaga: usunięcie elementu o nieistniejącym indeksie powoduje panikę.
fn main() {
let mut v = vec![10, 20, 30];
let gone = v.remove(0);
println!("removed {}", gone);
println!("{:?}", v);
}Szybkie usuwanie za pomocą swap_remove
Gdy kolejność nie ma znaczenia, szybsza jest metoda swap_remove. Przenosi ona ostatni element na miejsce usuniętego zamiast przesuwać wszystkie pozostałe.
Zmienia to kolejność elementów, ale pozwala uniknąć kosztu przesuwania.
fn main() {
let mut v = vec![1, 2, 3, 4];
let x = v.swap_remove(0);
println!("took {}", x);
println!("{:?}", v);
}Usuwanie wszystkich elementów
Metoda clear usuwa wszystkie elementy naraz, pozostawiając pusty wektor o długości 0. Wektor zachowuje przydzieloną pojemność do ponownego użycia.
Jest przydatna, gdy chcą Państwo wypełnić wektor od początku.
fn main() {
let mut v = vec![1, 2, 3];
v.clear();
println!("empty? {}", v.is_empty());
}Skracanie do określonej długości
Metoda truncate skraca wektor do wybranej długości, usuwając nadmiarowe elementy z końca. Jeśli wektor jest już krótszy, nic się nie dzieje.
W tym przykładzie zachowujemy tylko dwa pierwsze elementy.
fn main() {
let mut v = vec![1, 2, 3, 4, 5];
v.truncate(2);
println!("{:?}", v);
}Łączenie za pomocą extend
Metoda extend dołącza każdy element z innej kolekcji. Działa podobnie jak wywołanie push dla każdego elementu, ale wykonane w jednym kroku.
Poniżej druga lista jest dodawana na końcu pierwszej.
fn main() {
let mut v = vec![1, 2];
v.extend(vec![3, 4, 5]);
println!("{:?}", v);
}Zachowywanie wybranych elementów za pomocą retain
Metoda retain zachowuje tylko elementy, które przejdą test, a pozostałe usuwa bezpośrednio z wektora. Należy przekazać jej closure zwracające wartość typu bool.
W tym przykładzie zachowujemy tylko liczby parzyste.
fn main() {
let mut v = vec![1, 2, 3, 4, 5, 6];
v.retain(|n| n % 2 == 0);
println!("{:?}", v);
}Sortowanie elementów
Metoda sort porządkuje elementy bezpośrednio w wektorze — od najmniejszego do największego. Nie zmienia długości, a jedynie kolejność elementów.
Sortowanie wymaga, aby wektor był oznaczony jako mut.
fn main() {
let mut v = vec![3, 1, 4, 1, 5];
v.sort();
println!("{:?}", v);
}Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat zwiększania i zmniejszania rozmiaru wektorów.
Podsumowanie
Wektory można było powiększać za pomocą push, insert i extend, a zmniejszać za pomocą pop, remove, swap_remove, clear i truncate.
Ponadto można było filtrować elementy za pomocą retain i porządkować je za pomocą sort. Następnie poznają Państwo przechowywanie struktur w wektorach.
Często zadawane pytania
Czy lekcja „Powiększanie i zmniejszanie” jest bezpłatna?
Tak — pełny tekst „Powiększanie i zmniejszanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn Rust Coding, przejdź na CoddyKit PRO. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.
Co nauczysz się w „Powiększanie i zmniejszanie”?
Wstawi, usunie i zmieni rozmiar elementów. Ćwiczysz Learn Rust Coding z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn Rust Coding?
Nie wymagamy żadnego doświadczenia. Learn Rust Coding w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Powiększanie i zmniejszanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn Rust Coding?
Tak. Każda lekcja Learn Rust Coding zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie i wypełnianie wektorów
- Indeksowanie i iterowanie
- Powiększanie i zmniejszanie
- Wektory struktur