گرفتن اندازه آرایه (Get Array Size)
می خواهی بدانی آرایه چند عضو دارد؟ در C++ از عملگر (Operator) sizeof() کمک می گیریم. بایت (Byte) یعنی واحد اندازه گیری حافظه.
گرفتن اندازه با sizeof
اول ببینیم sizeof() چه برمی گرداند. نتیجه «بایت» است.
int myNumbers[5] = {10, 20, 30, 40, 50};
cout << sizeof(myNumbers);
برای int معمولاً هر عضو 4 بایت است. پس 5 عضو می شود 20 بایت.
تعداد اعضا = اندازه کل ÷ اندازه یک عضو
پس با یک تقسیم ساده، تعداد را می گیریم.
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(myNumbers[0]);
cout << getArrayLength;
حلقه با اندازه خودکار
نوشتن عدد ثابت، فقط برای همان آرایه جواب می دهد.
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
cout << myNumbers[i] << "\n";
}
اما با sizeof()، حلقه برای هر آرایه کار می کند.
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < sizeof(myNumbers) / sizeof(myNumbers[0]); i++) {
cout << myNumbers[i] << "\n";
}
جایگزین ساده تر: حلقه foreach
در C++11، foreach پیمایش را خیلی تمیز می کند.
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int num : myNumbers) {
cout << num << "\n";
}
گام های عملی
- با
sizeof(آرایه)اندازه کل را ببین. - آن را بر
sizeof(اولین عضو)تقسیم کن. - حاصل، تعداد اعضاست؛ در شرط حلقه بگذار.
جمع بندی سریع
sizeof()بایتِ نوع را می دهد.- تعداد = کل بایت ÷ بایتِ یک عضو.
- از عدد ثابت در حلقه پرهیز کن.
foreachتمیز و خواناست.
مطالعه مرتبط: حذف اندازه آرایه، آرایه ها و حلقه ها، و لینک خود گرفتن اندازه آرایه.