Menu
Coddy logo textTech

Tablica dynamiczna

Lekcja 13 z 14 w kursie Wskaźniki w C++ w Coddy.

Dzięki nowoczesnemu programowaniu i językom programowania wysokiego poziomu mamy struktury danych i algorytmy, które wykonują za nas złożone zadania w prosty sposób. Mamy wektor, stos, kolejkę itd.

Konkretnie vector w C++ to struktura danych reprezentująca dynamiczną tablicę. Nie musisz inicjalizować jej długości. Gdy używamy metody .push_back(), jej długość automatycznie się zmienia, a elementy, które chcemy dodać, są automatycznie dodawane i tak dalej. 

Za kulisami vector jest jednak dynamicznie zmieniany, a wszystkie metody i funkcje są wstępnie przygotowane przez kogoś innego. Warto jednak wiedzieć, jak działa dynamiczna alokacja tablicy.

Załóżmy na przykład, że mamy tablicę. Możemy ją zadeklarować i zainicjalizować jej długość, używając new i rezerwując miejsce w pamięci. Później możemy wypełnić te miejsca w pamięci wybranymi wartościami.

// Przydzielanie pamięci na 5 liczb całkowitych:
int *array = new int[5];
    
// Wypełnianie tablicy:
for(int i = 0; i < 5; i++)
        array[i] = i + 1;
// Wypisywanie
for(int i = 0; i < 5; i++)
    cout << array[i] << " ";
    
// Zwalnianie pamięci
delete[] array;
Output:
1 2 3 4 5

Jak widzisz, dynamicznie zarezerwowaliśmy miejsce w pamięci na 5 liczb całkowitych, użyliśmy pętli for, aby wypełnić te miejsca w pamięci, wypisaliśmy te liczby, a następnie usunęliśmy tablicę za pomocą delete[], aby bezpiecznie zwolnić pamięć i uniknąć wycieków pamięci.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Łatwy

Na wejściu otrzymasz liczbę N oznaczającą liczbę elementów tablicy. Utwórz dynamicznie tablicę o nazwie numbers, używając wskaźnika, i przydziel miejsce na N liczb całkowitych. W następnym wierszu wejścia otrzymasz N elementów — wczytaj każdy z nich za pomocą pętli for, a na koniec wypisz wszystkie elementy na parzystych pozycjach (indeks początkowy to 0). Na koniec zwolnij pamięć przydzieloną na początku

Dane wejściowe
5
1 2 3 4 5

Dane wyjściowe
1 3 5

Spróbuj swoich sił

#include <iostream>

using namespace std;

int main() {
    // Napisz kod tutaj
    return 0;
};

Wszystkie lekcje w sekcji Wskaźniki w C++

Poćwicz samodzielnie: Kompilator C++ online