Tablice w języku C++

Cześć!

Dzisiaj zajmiemy się tablicami. Tablica to uporządkowany, znajdujący się w pamięci obok siebie, zestaw danych. Zestawem danych może być cokolwiek. Może to być liczba, string, lub inny typ danych. To co odróżnia tablicę od innych struktur, to jej uporządkowanie w pamięci obok siebie. Pamięć to zestaw rekordów, z których każdy ma swój adres. Czym jest adres ? Adres to (zazwyczaj) liczba, która jest unikalna dla całej pamięci i wskazuje, że chodzi nam o ten konkretny adres. Dla przykładu:

Adres:  1      2             3
Dane:   35    79    "Ala ma kota"

To jest właśnie takie przyporządkowanie do adresu, odpowiadającym im danych. Jak to się ma do tablic. O ile w przypadku innych danych, lub zmiennych, mogą(zwykle nie są, w pojedyńczym programie) być one porozrzucane po całej pamięci. Tak w przypadku tablic, są one obok siebie. Teraz: Jaki jest cel, żeby stały one obok siebie ? Jest wiele. Zaczynijmy od przykładu z życia.Wyobraźmy sobie, że mamy pokój wypełniony książkami. Książki te są porozrzucane po całym pokoju. Będzie Nam trudniej znaleźć książkę A,B, oraz C, niż gdyby były one ułożone obok siebie. Główną zaletą jest więc wydajność w przeszukiwaniu, oraz łatwość w odnajdowaniu. W przypadku tablic kompilator alokuje automatycznie ją za jednym zamachem, przez co dosyć dużym problemem, może być czasami przydzielenie tej pamięci i znalezienie odpowiedniego miejsca w pamięci, poprzez przesuwanie innych obszarów pamięci.

Przykład:

#include <iostream>

int main()
{

char t[]="Ala ma kota";  ///[]-> symbol tablicy. Zaoolokowaliśmy tablicę


std::cout<<t[0]<<t[10]<<'\n';
}
Znacznik [] oznacza tablicę. Jest to umowny symbol, oznaczający że ma to początek([), oraz koniec(]) w ścieśle określonym zakresie. Następnym ważnym elementem jest wpisanie tam liczby. Jeśli chcemy zaalokować konkretne dane, robimy to przy deklaracji(czyli pierwszym wystąpieniu danego wyrażenia). Następnie, jeżeli chcemy dodać, wpisujemy znak równa się i to co chcemy dodać. W przypadku liczb całkowitych sprawa wygląda inaczej. Ich deklaracja wygląda w ten sposób:

int table[]={1,2,3,4,5};

Dostanie się do poszczególnych elementów jest podobne jak w przypadku ciągu. Robimy to poprzez znacznik [], oraz wpisując w środku element do którego chcemy się dostać. Dla przykładu, chce zdobyć informacje co zawiera tablica "table"o indeksie 2, czyli wpisujemy: table[2]. Wypisze nam 3.

Tablice mogą być oczywiście wielowymiarowe. Czyli posiadać więcej niż jeden wymiar. Czyli np. mieć pion i poziom. Jest to jednak historia na osobny materiał.


Komentarze

Popularne posty z tego bloga

Co dokładnie oznacza std::cout<<"Witaj Swiecie!"<<'\n''; w C++ ?

Klasy, Przestrzenie nazw, Nonlocal, Global i Local. Czy Python ma zmienne prywatne ?

Przeciążanie operatorów w C++