0Pricing
Learn Rust Coding · Lekcja

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

  1. Tworzenie i wypełnianie wektorów
  2. Indeksowanie i iterowanie
  3. Powiększanie i zmniejszanie
  4. Wektory struktur
← Powrót do Learn Rust Coding