C++: Tablice dwuwymiarowe
W poprzedniej lekcji omawialiśmy tablice jednowymiarowe. Jednak na tym jednym wymiarze wcale nie musimy kończyć. Tablica może mieć dwa, trzy, cztery czy więcej wymiarów.
Tablica dwuwymiarowa jest to tak naprawdę taka tablica jednowymiarowa, która w każdej komórce zawiera kolejną tablicę jednowymiarową. Analogicznie jest z tablicami o większej liczbie wymiarów.
Dwuwymiarową tablicę łatwo sobie wyobrazić, a wygląda ona następująco:
Jak widzimy – graficzne przedstawienie tablicy dwuwymiarowej to tabelka, bardziej prawidłowo zwana macierzą n x m. Obrazek przedstawia tablicę, w której oba wymiary są równe, a więc ma tyle samo wierszy i kolumn, jednak nie znaczy to, że nie mogą być różne.
Deklaracja tablicy dwuwymiarowej
Deklaracja tablicy dwuwymiarowej odbywa się poprzez określenie typu danych oraz dwóch wymiarów tablicy w nawiasach kwadratowych. Na przykład, int myArray[10][20];
deklaruje tablicę dwuwymiarową typu int
, która zawiera 10 wierszy i 20 kolumn.
Inicjalizacja statycznych tablic dwuwymiarowych może odbywać się na kilka sposobów. Możesz zainicjalizować tablicę podczas deklaracji, podając wartości w nawiasach klamrowych. Na przykład:
int myArray[2][3] = {{1, 2, 3}, {4, 5, 6}};
W tym przypadku stworzona zostaje tablica z dwoma wierszami i trzema kolumnami, gdzie pierwszy wiersz to 1, 2, 3
, a drugi to 4, 5, 6
.
Dostęp do elementów tablicy
zyskiwanie dostępu do elementów tablicy dwuwymiarowej w C++ odbywa się za pomocą indeksów, które określają wiersz i kolumnę danego elementu. W języku C++ indeksowanie tablic zaczyna się od 0, więc pierwszy element tablicy ma indeks [0][0].
Aby uzyskać dostęp do konkretnego elementu tablicy, podajesz jego indeksy w nawiasach kwadratowych po nazwie tablicy. Na przykład, jeśli masz tablicę int myArray[2][3];
, możesz uzyskać dostęp do elementu w pierwszym wierszu i drugiej kolumnie używając myArray[0][1];
.
Odczyt wartości elementu
Jeśli chcesz odczytać wartość elementu z tablicy, po prostu odwołujesz się do niego przez jego indeksy.
int value = myArray[1][2];
cout << "Wartość elementu to: " << value << endl;
Modyfikacja elementu
Aby zmodyfikować element tablicy, odwołujesz się do niego przez jego indeksy i przypisujesz mu nową wartość.
myArray[1][2] = 10;
cout << "Nowa wartość elementu to: " << myArray[1][2] << endl;
Iteracja przez tablicę
Iterowanie przez tablicę dwuwymiarową w języku C++ jest procesem, który umożliwia przetwarzanie każdego elementu tablicy osobno. Najczęściej do tego celu wykorzystuje się zagnieżdżone pętle.
Pętle zagnieżdżone to standardowy sposób na iterację przez tablice dwuwymiarowe. Zewnętrzna pętla przechodzi przez wiersze, a wewnętrzna pętla przez kolumny tablicy.
int myArray[2][3] = {{1, 2, 3}, {4, 5, 6}};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << "Element [" << i << "][" << j << "] = " << myArray[i][j] << endl;
}
}
Operacje na tablicach
Tablice dwuwymiarowe w języku C++ pozwalają na przechowywanie danych w formie matrycy, co umożliwia wykonywanie wielu zaawansowanych operacji.
Spróbujmy w przykładowej tablicy znaleźć jej największy element.
Szukanie elementów
Można przeszukiwać tablicę w poszukiwaniu określonego elementu lub spełnienia określonego warunku. Na przykład, znalezienie największej wartości w tablicy.
int max = myArray[0][0];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
if (myArray[i][j] > max) {
max = myArray[i][j];
}
}
}
cout << "Największa wartość: " << max << endl;
Do przechowania największej wartości, znajdującej się w tablicy wykorzystamy zmienną max. Na start przypiszmy jej wartość pierwszego elementu tablicy, czyli znajdującej się w pierwszej kolumnie, pierwszego wiersza, komórki o adresie myArray[0][0];
Pętla zewnętrzna iteruje po wierszach, wewnętrzna po kolumnach, co oznacza, że pierwsza pętla, ze zmienną i jako iteratorem, odpowiada za nasze numery wierszy, natomiast druga, za numery kolumn w tablicy myArray. Przechodzimy zatem kolejno, przez wszystkie komórki pierwszego wiersza, następnie drugiego i tak dalej.
Odczytując wartość zawartą w każdej z komórek tablicy, porównujemy ją z dotychczas zapisaną wartością zmiennej max. Jeśli wartość sprawdzanej komórki jest większa od max, aktualizujemy wartość max. Robimy do przypisując wartość sprawdzanej komórki do max.
Po przejściu przez wszystkie komórki jesteśmy w stanie wypisać największą wartość z tablicy, to ta zapisana w ostatecznej wersji zmiennej max.
Testy przypięte do lekcji | |
---|---|
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się |