C ++ tömbök (példákkal)

Ebben az oktatóanyagban megtanuljuk a tömbökkel való munkát. Megtanuljuk példák segítségével deklarálni, inicializálni és elérni a tömb elemeket a C ++ programozásban.

A C ++ - ban egy tömb olyan változó, amely több azonos típusú értéket képes tárolni. Például,

Tegyük fel, hogy egy osztálynak 27 tanulója van, és mindannyiuk osztályzatát tárolnunk kell. 27 különálló változó létrehozása helyett egyszerűen létrehozhatunk egy tömböt:

 double grade(27);

Itt a grade egy tömb, amely maximum 27 doubletípusú elemet tartalmazhat .

A C ++ rendszerben a tömbök mérete és típusa a deklaráció után nem változtatható meg.

C ++ tömb deklaráció

 dataType arrayName(arraySize);

Például,

 int x(6);

Itt,

  • int - a tárolandó elem típusa
  • x - a tömb neve
  • 6 - a tömb mérete

Hozzáférési elemek a C ++ tömbben

A C ++ - ban egy tömb minden eleme számhoz van rendelve. A szám tömbindexként ismert. A tömb elemeihez az indexek segítségével férhetünk hozzá.

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

Vegyük figyelembe a fent látható x tömböt.

Egy tömb elemei C ++ nyelven

Néhány emlékezetes dolog:

  • A tömbindexek kezdődnek 0. Az x (0) jelentése az első elem, amelyet az indexen tárolnak 0.
  • Ha egy tömb mérete van n, akkor az utolsó elemet az index tárolja (n-1). Ebben a példában x (5) az utolsó elem.
  • Egy tömb elemeinek egymást követő címe van. Tegyük fel például, hogy a kezdő címe x(0)2120d. Ezután a következő elem x(1)címe 2124d, a címe x(2)2128d lesz, és így tovább.
    Itt az egyes elemek méretét int4-gyel növeljük. Ennek az az oka, hogy a méret 4 bájt.

C ++ tömb inicializálása

A C ++ nyelven lehetséges a tömb inicializálása a deklaráció során. Például,

 // declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);
C ++ tömb elemek és azok adatai

Egy másik módszer a tömb inicializálására a deklaráció során:

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

Itt nem említettük a tömb méretét. Ilyen esetekben a fordító automatikusan kiszámítja a méretet.

C ++ tömb üres tagokkal

A C ++ - ban, ha egy tömbnek van mérete n, legfeljebb n elemet tárolhatunk a tömbben. Mi történik azonban, ha kevesebb mint n elemet tárolunk.

Például,

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

Itt az x tömb mérete 6. Inicializáltuk azonban csak 3 elemmel.

Ilyen esetekben a fordító véletlenszerű értékeket rendel a maradék helyekhez. Gyakran ez a véletlenszerű érték egyszerűen 0.

Az üres tömbtagokhoz automatikusan 0 értéket rendelünk

Hogyan lehet beilleszteni és kinyomtatni a tömb elemeket?

 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);

1. példa: Tömb elemek megjelenítése

 #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; )

Kimenet

 A számok a következők: 7 5 6 12 35. A számok: 7 5 6 12 35

Itt már használják a forhurok hajtogat re i = 0a i = 4. Minden iterációban nyomtattunk numbers(i).

A tömb elemeinek kinyomtatásához ismét egy cikluson alapuló tartományt használtunk. Ha többet szeretne megtudni erről a hurokról, ellenőrizze a C ++ Ranged for Loop elemet.

Megjegyzés: Tartományalapú ciklusunkban a kódot használtuk a tartománydeklaráció const int &nhelyett int n. Ez azonban const int &nelőnyösebb, mert:

  1. Az int negyszerű használatával az iteráció során az array elemeket az n változóba másolja. Ez nem memória-hatékony.
    Az & n azonban a tömb elemek memória címét használja adatok eléréséhez anélkül, hogy új változóba másolná őket. Ez memória-hatékony.
  2. Egyszerűen kinyomtatjuk a tömb elemeket, nem módosítjuk őket. Ezért arra használjuk const, hogy véletlenül ne változtassuk meg a tömb értékeit.

2. példa: Vegye be a felhasználótól a bemeneteket, és tárolja őket egy tömbben

 #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; )

Kimenet

 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. Az 1egyes iterációkban növeljük a számlálás értékét is , hogy a for ciklus végére megkapjuk a tömb méretét.
  4. Az összes elem kinyomtatása után kinyomtatjuk az összes szám összegét és átlagát. A számok átlagát aaverage = sum / count;

Megjegyzés:for Normál forhurok helyett tartományt használtunk .

Egy normál forciklushoz meg kell adnunk az iterációk számát, amelyet a tömb mérete ad meg.

De a távolsági forhurok nem igényel ilyen specifikációkat.

C ++ tömb határon kívül

Ha egy 10 méretű tömböt deklarálunk, akkor a tömb 0 és 9 közötti indexeket tartalmaz.

Ha azonban megpróbáljuk elérni az elemet a 10-es indexnél, vagy meghaladja a 10-et, az meghatározatlan viselkedést eredményez.

érdekes cikkek...