Tablice C ++ (z przykładami)

W tym samouczku nauczymy się pracować z tablicami. Nauczymy się deklarować, inicjalizować i uzyskiwać dostęp do elementów tablic w programowaniu w C ++ za pomocą przykładów.

W języku C ++ tablica to zmienna, która może przechowywać wiele wartości tego samego typu. Na przykład,

Załóżmy, że w klasie jest 27 uczniów i musimy przechowywać oceny wszystkich z nich. Zamiast tworzyć 27 osobnych zmiennych, możemy po prostu stworzyć tablicę:

 double grade(27);

Tutaj grade jest tablicą, która może pomieścić maksymalnie 27 elementów doubletypu.

W C ++ nie można zmienić rozmiaru i typu tablic po ich deklaracji.

Deklaracja tablicy w języku C ++

 dataType arrayName(arraySize);

Na przykład,

 int x(6);

Tutaj,

  • int - rodzaj przechowywanego elementu
  • x - nazwa tablicy
  • 6 - rozmiar tablicy

Dostęp do elementów w tablicy C ++

W C ++ każdy element tablicy jest powiązany z liczbą. Liczba jest nazywana indeksem tablicy. Możemy uzyskać dostęp do elementów tablicy za pomocą tych indeksów.

 // syntax to access array elements array(index);

Rozważ tablicę x, którą widzieliśmy powyżej.

Elementy tablicy w C ++

Kilka rzeczy do zapamiętania:

  • Indeksy tablicy zaczynają się od 0. Znaczenie x (0) to pierwszy element przechowywany pod indeksem 0.
  • Jeśli rozmiar tablicy to n, ostatni element jest przechowywany pod indeksem (n-1). W tym przykładzie x (5) jest ostatnim elementem.
  • Elementy tablicy mają kolejne adresy. Na przykład załóżmy, że adres początkowy x(0)to 2120d. Następnie adres następnego elementu x(1)będzie miał wartość 2124d, adres x(2)to 2128d i tak dalej.
    Tutaj rozmiar każdego elementu jest zwiększany o 4. Dzieje się tak, ponieważ rozmiar intwynosi 4 bajty.

Inicjalizacja tablicy w C ++

W C ++ możliwe jest zainicjowanie tablicy podczas deklaracji. Na przykład,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
Elementy tablicy C ++ i ich dane

Inna metoda inicjalizacji tablicy podczas deklaracji:

 // declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);

Tutaj nie wspomnieliśmy o rozmiarze tablicy. W takich przypadkach kompilator automatycznie oblicza rozmiar.

Tablica C ++ z pustymi członkami

W C ++, jeśli tablica ma rozmiar n, możemy przechowywać do n liczby elementów w tablicy. Co się jednak stanie, jeśli będziemy przechowywać mniej niż n liczby elementów.

Na przykład,

 // store only 3 elements in the array int x(6) = (19, 10, 8);

W tym przypadku tablica x ma rozmiar 6. Jednak zainicjowaliśmy go tylko z 3 elementami.

W takich przypadkach kompilator przypisuje do pozostałych miejsc losowe wartości. Często ta losowa wartość jest po prostu 0.

Pustym elementom szyku automatycznie przypisywana jest wartość 0

Jak wstawiać i drukować elementy tablicy?

 int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);

Przykład 1: Wyświetlanie elementów tablicy

 #include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )

Wynik

 Liczby to: 7 5 6 12 35 Liczby to: 7 5 6 12 35

Tutaj użyliśmy forpętli do iteracji od i = 0do i = 4. W każdej iteracji wydrukowaliśmy numbers(i).

Ponownie użyliśmy zakresu opartego na pętli for, aby wydrukować elementy tablicy. Aby dowiedzieć się więcej o tej pętli, sprawdź C ++ Ranged for Loop.

Uwaga: w naszej pętli opartej na zakresie użyliśmy kodu const int &nzamiast int ndeklaracji zakresu. Jednak const int &njest bardziej preferowany, ponieważ:

  1. Użycie int npo prostu kopiuje elementy tablicy do zmiennej n podczas każdej iteracji. To nie jest wydajne pod względem pamięci.
    & n używa jednak adresów pamięci elementów tablicy, aby uzyskać dostęp do ich danych bez kopiowania ich do nowej zmiennej. To oszczędza pamięć.
  2. Po prostu drukujemy elementy tablicy, a nie modyfikujemy ich. Dlatego używamy, constaby nie przypadkowo zmienić wartości tablicy.

Przykład 2: pobieranie danych wejściowych od użytkownika i przechowywanie ich w tablicy

 #include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )

Wynik

 Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15

Once again, we have used a for loop to iterate from i = 0 to i = 4. In each iteration, we took an input from the user and stored it in numbers(i).

Then, we used another for loop to print all the array elements.

Example 3: Display Sum and Average of Array Elements Using for Loop

 #include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )

Output

 The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333

In this program:

  1. We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
    Here, sum =0 and count = 0.
  2. Then we used a range based for loop to print the array elements. In each iteration of the loop, we add the current array element to sum.
  3. Zwiększamy również wartość count o 1w każdej iteracji, dzięki czemu możemy uzyskać rozmiar tablicy do końca pętli for.
  4. Po wydrukowaniu wszystkich elementów wypisujemy sumę i średnią wszystkich liczb. Średnia z liczb jest podana przezaverage = sum / count;

Uwaga:for zamiast zwykłej forpętli użyliśmy pętli dystansowej .

Normalna forpętla wymaga od nas określenia liczby iteracji, którą określa rozmiar tablicy.

Ale forpętla dystansowa nie wymaga takich specyfikacji.

C ++ Array poza granicami

Jeśli zadeklarujemy tablicę o rozmiarze 10, to tablica będzie zawierała elementy o indeksach od 0 do 9.

Jeśli jednak spróbujemy uzyskać dostęp do elementu o indeksie 10 lub większym niż 10, spowoduje to niezdefiniowane zachowanie.

Interesujące artykuły...