Dodawanie elementów za pomocą push
Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 9 z 66.
Gdy masz już wektor, często będziesz chcieć dodawać do niego nowe elementy. Rust udostępnia metodę .push(), która dodaje elementy na końcu wektora. To jedna z najczęstszych operacji wykonywanych na wektorach.
Oto jak używać .push():
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);Zwróć uwagę na słowo kluczowe mut — to kluczowe! Ponieważ dodawanie elementów zmienia zawartość wektora, wektor musi być zadeklarowany jako mutowalny. Bez mut Rust nie pozwoli Ci modyfikować wektora.
Metoda .push() zawsze dodaje nowy element na końcu wektora. Każde wywołanie metody .push() zwiększa długość wektora o jeden:
let mut fruits = Vec::new();
fruits.push("apple");
fruits.push("banana");
// fruits zawiera teraz ["apple", "banana"]Możesz też zacząć od wektora, który zawiera już elementy, i dalej dodawać do niego kolejne:
let mut scores = vec![85, 92];
scores.push(78); // scores zawiera teraz [85, 92, 78]Wyzwanie
ŁatwyOtrzymasz trzy liczby jako dane wejściowe, każdą w osobnym wierszu. Odczytaj te liczby, przekonwertuj je na liczby całkowite i dodaj je do wektora za pomocą metody .push(). Po dodaniu wszystkich trzech liczb wypisz każdy element wektora w osobnym wierszu.
Wymagania:
- Utwórz pusty, mutowalny wektor
- Odczytaj trzy liczby z danych wejściowych i przekonwertuj każdą na liczbę całkowitą
- Użyj
.push(), aby dodać każdą liczbę do wektora - Wypisz każdy element wektora w osobnym wierszu
Dane wejściowe: Trzy liczby całkowite, każda w osobnym wierszu
Dane wyjściowe: Wypisz każdy element wektora w osobnym wierszu
Spróbuj swoich sił
use std::io;
fn main() {
// Wczytaj trzy liczby z wejścia
let mut input1 = String::new();
io::stdin().read_line(&mut input1).expect("Failed to read line");
let num1: i32 = input1.trim().parse().expect("Invalid input");
let mut input2 = String::new();
io::stdin().read_line(&mut input2).expect("Failed to read line");
let num2: i32 = input2.trim().parse().expect("Invalid input");
let mut input3 = String::new();
io::stdin().read_line(&mut input3).expect("Failed to read line");
let num3: i32 = input3.trim().parse().expect("Invalid input");
// TODO: Napisz swój kod poniżej
// Utwórz modyfikowalny wektor i dodaj do niego liczby
// Wypisz każdy element wektora w osobnej linii
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane sterowanie przepływem
Wyrażenie „match”Dopasowywanie wielu wartościDopasowywanie zakresówWyrażenie „if let”Pętle jako wyrażeniaPodsumowanie — prosty parser poleceń4Grupowanie danych za pomocą struktur
Czym jest struktura?Przegląd strukturDostęp do pól strukturyModyfikowalne strukturyStruktury jako parametry funkcjiStruktury krotkowePodsumowanie — utwórz strukturę Book2Wprowadzenie do wektorów
Czym jest wektor?Tworzenie wektoraDodawanie elementów za pomocą pushDostęp do elementów wektoraIterowanie po wektorzeIterowanie z możliwością modyfikacjiUsuwanie elementówPodsumowanie — prosty licznik punktów5Pary klucz–wartość z mapami hashującymi
Czym jest mapa haszująca?Tworzenie mapy haszującejWstawianie par klucz–wartośćDostęp do wartościIterowanie po mapie haszującejAktualizowanie wartościUsuwanie paryPodsumowanie – licznik słów8Projekt: Prosty system inwentaryzacji
Konfiguracja projektuDodawanie produktuSprawdzanie stanu magazynowegoSprzedaż produktuŁączenie wszystkiego w całość3Lista zadań w wierszu poleceń
Konfiguracja projektuDodawanie zadaniaWyświetlanie wszystkich zadańUsuwanie zadaniaKońcowy kodPoćwicz samodzielnie: Kompilator Rust online