מצא את גודל המערך C ++

Find Array Size C



מערך הוא מיכל בעל רכיבים מאותו סוג נתונים. אם איננו יודעים את גודל המערך בפועל, ניתן לקבוע אותו בשיטות שונות. כאשר אנו מדברים על גודל מערך, למעשה אנו מדברים על מספר האלמנטים הקיימים במערך. לפעמים, אנו מגדירים את גודל המערך, ולפעמים הסוגריים נותרים ריקים. זהו גודל לכאורה המציג רק את היכולת של מערך לאחסן בו ערך. לדוגמה, שקול הצהרת מערך לדוגמה

מערך Int[] = {1,2,3,4,5,6}

כאן גודל המערך או אורך המערך הוא 6. וגודל המערך הכולל שיש להקצות אינו מוצג. הגודל האמיתי מתקבל על ידי יישום פעולות שונות. פעולות אלה משמשות במאמר זה כדי להשיג את גודל המערך.







דוגמא 1

באיור זה ננצל את הרעיון של התחלה () וסוף (). באמצעות שיטה זו ניתן לדעת בקלות את גודל המערך. אלה שתי ספריות הידועות בספריות סטנדרטיות. שתי פונקציות אלה מחזירות את האיטרטורים המציגים את הנקודות הראשוניות והסיומות של המערך. החל מהכותרת, אנו משתמשים בספריית מערכים. זה יכלול את כל הפונקציות הקשורות למערך. בפונקציה הראשית, יזמנו מערך בעל ערכים שלמים.



עֲלוּת<<……….<<סוֹף(ל)-begib(ל)<<

כאן לא הזכרנו את גודל המערך. בהצהרת התצוגה בעקבות ההתמודדות, יש לנו שימוש בפונקציות end () והתחלה (). ההבדל בין שתי הפונקציות הללו יראה לנו את גודל המערך. בפרמטרים של פונקציות אלה, עברנו את המערך. על ידי כך ייקבע הגודל האמיתי. הערך המתקבל מפונקציות אלה מוצג ישירות.







עכשיו מתקדמים לעבר הפלט. אנו אמורים לבצע תוכניות אלה בלינוקס, ולכן אנו זקוקים למעורבות של מסוף אובונטו. מכיוון שאנו משתמשים בקוד C ++, כך שעלינו לאסוף את הקוד באמצעות המהדר. זהו מהדר G ++. לאחר חיבור הקוד, נבצע אותו. הפקודות להלן מציגות את גישת הפלט בה השתמשנו.

$ גרם++ -o קוד 2 קוד 2.ג

$./קוד 2



כעת תוכל לראות את הפלט. דוגמה נוספת דומה במקרה של std היא פונקציית המרחק. במרחק זה מחושב באמצעות פונקציות התחל () וסיום (). זה הושלם על ידי שימוש בפונקציות אלה עם std.

Int n=שעה (ות:: מֶרְחָק(שעה (ות::התחל(arr),שעה (ות::סוֹף(arr));

הפלט מתקבל בהצהרת cout. כדי לראות את הרשומה, השתמש שוב במהדר כדי לבצע את הקוד.

כאן אתה יכול לראות שהתפוקה הרצויה שלנו מתקבלת.

דוגמא 2

דוגמה זו מתייחסת לשימוש בפונקציה sizeof () בקוד C ++, מכיוון שערך זה מחזיר את גודל הנתונים האמיתי בצורה של בתים. יתר על כן, הוא עוסק גם בהחזרת מספר הבייטים המשמשים לאחסון מערך. במילים אחרות, בדוגמה זו, השלב הראשון הוא אתחול מערך מבלי להצהיר על גודל מערך. התחביר המשמש לפונקציה sizeof () הוא:

Int al= מידה של(arr)/מידה של(arr[0]);

איפה arr הוא המערך. arr [0] מציג את אינדקס האלמנטים במערך.

אז אמירה זו מרמזת כי גודל המערך מחולק בגודל כל האלמנטים הקיימים, אחד אחד. זה עוזר בחישוב האורך. השתמשנו במשתנה שלם כדי לקבל ולאחסן את החזרת הערך מהפונקציה.

נקבל את הפלט מכאן משורת הפקודה באותה שיטת ביצוע-קומפיל.

הפלט מציג את גודל המערך, מה שמרמז על מספר האלמנטים הקיימים בו, שהוא 6.

דוגמה 3

דוגמה זו כוללת את השימוש בפונקציה size (). פונקציה זו ממוקמת בספרייה הסטנדרטית, STL. השלב הראשוני בתוכנית הראשית הוא הצהרת המערך. כאן שם המערך מכיל גם את הגודל והערך השלם. שיטה זו גם מחזירה את התוצאה ישירות בהצהרת הפלט.

עֲלוּת<<….<<arr.גודל()<<

כאשר 'arr' הוא המערך, כדי להביא את התוצאה או לגשת לפונקציה, אנו צריכים את שם המערך עם פונקציית הגודל.

כדי להציג את התוצאה, אנו משתמשים במהדר g ++ כדי לאסוף ולבצע את התוצאה.

מהפלט, אתה יכול לראות שהתוצאה היא הרצויה שלנו המציגה את גודל המערך בפועל.

דוגמה 4

ניתן להשיג את גודל מערך גם באמצעות מצביעים שכן מצביעים מאחסנים את הכתובת/המיקום של ערך המשתנה. כעת שקול את הדוגמה שלהלן.

השלב הראשוני הוא לאתחל מערך כרגיל. ואז המצביע עובד עבור גודל המערך.

Int len= *(&מַעֲרָך+ 1)- מערך;

זוהי הצהרת הליבה שעובדת כמצביע. * משמש לאיתור המיקום של כל אלמנט במערך, ואילו אופרטור & משמש להשגת ערך המיקום המתקבל באמצעות המצביע. זו הדרך בה אנו משיגים את גודל המערך ממצביעים. התוצאה מוצגת דרך הטרמינל. התשובה זהה. כגודל המערך שהוזכר צוין כ -13.

דוגמה 5

בדוגמה זו, השתמשנו ברעיון של ניכוי ארגומנטים של תבניות. ארגומנט תבנית הוא פרמטר מסוג מיוחד. הוא משמש להעברת טיעון מכל סוג שהוא, בדיוק כמו הפונקציות הרגילות שניתן להעביר כארגומנט.

כאשר מערך מועבר כפרמטר, הוא הופך למצביע להצגת הכתובת. כדי להשיג את אורך המערך הספציפי, אנו משתמשים בגישה זו של ניכוי ארגומנטים של תבנית. Std היא צורה קצרה של תקן.

בהתחשב בדוגמה הנתונה, הצגנו מחלקת תבניות המשמשות להשגת גודל המערך. זוהי מחלקת מובנית המוגדרת כברירת מחדל המכילה את כל הפונקציות של ארגומנטים של תבניות.

Constexpr std: : גודל_טגודל(קבועט(&מַעֲרָך)[נ])משהו מלבד{

לַחֲזוֹרנ;

}

זהו קו קבוע במושג זה. הפלט מתקבל ישירות בהצהרת ה- cout.

מהפלט, אתה יכול לראות שיש לנו את הפלט הרצוי: גודל המערך.

דוגמה 6

אנו משתמשים ב- std :: vector כדי להשיג את גודל המערך בתוכנית. זהו סוג של מיכל; תפקידו לאחסן מערכים דינמיים. זה עובד בשיטות שונות לפעולות שונות. כדי להשיג דוגמה זו, השתמשנו בספריית וקטורים הכוללת את כל הפונקציות הווקטוריות בה. הוא גם מצהיר על הצהרות cin, cout, endl, וקטור לשימוש בתוכנית. מערך מופעל תחילה בתוכנית. הפלט מוצג בהצהרת cout לפי גודל וקטור.

עֲלוּת<<גודל וקטורי: <<int_array.גודל() <<endl;

כעת נראה את הפלט ממסוף אובונטו. גודל המערך מדויק לאלמנטים הקיימים בו.

סיכום

במדריך זה השתמשנו בגישה אחרת להשגת אורך המערך או גודלו. חלקן פונקציות מובנות, ואילו אחרות משמשות ידנית.