Przejdź do głównej treści
eLearner.app
Moduł 5 · Lekcja 1 z 211/18 w kursie~12 min
Lekcje modułu (1/2)

Tablice i Wektory

W C++ zarządzanie kolekcjami danych odbywa się głównie za pomocą dwóch narzędzi: tablic w starym stylu (C-style arrays) oraz wektorów (std::vector). Zrozumienie różnicy między pamięcią statyczną a dynamiczną jest kluczowe dla pisania wydajnego kodu.


1. Tablice statyczne (C-style Arrays)

Tablica to kolekcja elementów tego samego typu przechowywanych w spójnych obszarach pamięci. Rozmiar tablicy statycznej musi być znany w momencie kompilacji i nie może być modyfikowany później:

Code
int grades[5] = {18, 22, 25, 28, 30}; // Array di 5 interi

Główne cechy:

  • Stały rozmiar: Nie jest możliwe dodawanie ani usuwanie elementów w czasie wykonywania programu (runtime).
  • Alokacja na stosie (Stack): Są bardzo szybkie w alokacji i zwalnianiu.
  • Dostęp: Odbywa się za pomocą operatora indeksu [] (np. grades[0] dla pierwszego elementu).

2. Wektory dynamiczne (std::vector)

Biblioteka standardowa (STL) języka C++ udostępnia klasę std::vector, która reprezentuje tablicę dynamiczną. Aby z niej skorzystać, należy dołączyć nagłówek <vector>:

Code
#include <vector>

std::vector<int> numbers; // Crea un vettore vuoto di interi

Typowe operacje:

  • Dodawanie na końcu: Metoda .push_back(valore) wstawia element na końcu wektora, automatycznie alokując nową pamięć w razie potrzeby.
  • Rozmiar: Metoda .size() zwraca liczbę elementów aktualnie znajdujących się w wektorze.
  • Bezpieczny dostęp: Oprócz operatora [] można użyć metody .at(indice) (np. numbers.at(0)), która zgłasza wyjątek, jeśli indeks wykracza poza granice tablicy.
Code
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores ora contiene {90, 85, 95}
std::cout << scores.size(); // Stampa 3

Spróbuj sam

Ćwiczenie#cpp.m5.l1.e1
Próby: 0Ładowanie...

Zadeklaruj wektor std::vector liczb całkowitych o nazwie numbers. Dodaj do niego wartości 10, 20 i 30 za pomocą metody .push_back(), a na koniec wypisz jego rozmiar przy użyciu numbers.size().

Ładowanie edytora...
Pokaż wskazówkę

Zadeklaruj wektor za pomocą `std::vector<int> numbers;`, dodaj trzy liczby za pomocą `.push_back(valore)`i wypisz rozmiar używając`std::cout << numbers.size();`.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#cpp.m5.l1.e2
Próby: 0Ładowanie...

W funkcji main zdefiniowano 5-elementową tablicę grades. Napisz pętlę for, aby obliczyć sumę wszystkich elementów tablicy, zapisz ją w zmiennej sum i wypisz za pomocą std::cout.

Ładowanie edytora...
Pokaż wskazówkę

Użyj pętli `for (int i = 0; i < 5; ++i)`i dodaj każdy element wewnątrz pętli za pomocą`sum += grades[i];`.

Rozwiązanie dostępne po 3 próbach

Quiz#cpp.m5.l1.q1
Gotowe

Jaka jest poprawna metoda dodawania elementu na końcu std::vector w C++?

Code
std::vector<int> numbers; // come aggiungere il valore 50?
Opcje odpowiedzi