Skip to content

Massiv o'lchamini olish (Get Array Size)

sizeof() operatori

Massivning o'lchamini olish uchun sizeof() operatoridan foydalanish mumkin:

MISOL

cpp
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);

Natija:

20

Nima uchun natija 5 o'rniga 20 bo'ldi? Chunki massivda 5 ta element bor-ku?

Buning sababi, sizeof() operatori turning o'lchamini bayt (bytes) da qaytaradi.

Ma'lumot turlari bobidan bilganingizdek, int turi odatda 4 bayt egallaydi. Demak: 4 × 5 (4 bayt × 5 element) = 20 bayt.

Massivdagi elementlar sonini aniqlash uchun massivning umumiy o'lchamini birinchi elementning o'lchamiga bo'lish kerak:

MISOL

cpp
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(myNumbers[0]);
cout << getArrayLength;

Natija:

5

sizeof() bilan tsikl

Massivlar va tsikllar bobida biz tsikl shartida massiv o'lchamini qo'lda yozgan edik (i < 5). Bu ideal emas, chunki faqat ma'lum o'lchamdagi massivlar uchun ishlaydi.

Biroq, sizeof() yondashuvidan foydalanib, istalgan o'lchamdagi massivlar uchun ishlaydigan tsikllar yozish mumkin:

Quyidagicha yozish o'rniga:

cpp
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
  cout << myNumbers[i] << "\n";
}

Shunday yozish yaxshiroq:

MISOL

cpp
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < sizeof(myNumbers) / sizeof(myNumbers[0]); i++) {
  cout << myNumbers[i] << "\n";
}

C++ 11 versiyasidan boshlab, bundan ham oddiyroq "for-each" tsiklidan foydalanish mumkin:

MISOL

cpp
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int num : myNumbers) {
  cout << num << "\n";
}

MA'LUMOT

Massiv bo'ylab aylanishning turli usullarini bilish foydalidir, chunki turli dasturlarda ularning barchasiga duch kelishingiz mumkin.