Massiv o'lchamini olish (Get Array Size)
sizeof() operatori
Massivning o'lchamini olish uchun sizeof() operatoridan foydalanish mumkin:
MISOL
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);Natija:
20Nima 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
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(myNumbers[0]);
cout << getArrayLength;Natija:
5sizeof() 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:
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
cout << myNumbers[i] << "\n";
}Shunday yozish yaxshiroq:
MISOL
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
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.
