פונקציית מחיקת וקטורים () ב- C ++

Vector Erase Function C



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

תחביר:

להלן שני סוגי תחביר של פונקציה זו.







מחק איטרציה(עמדת איטרציה);

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



מחק איטרציה(מיקום איטרציה מתחיל, מיקום איטרציה);

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



תְנַאִי מוּקדָם:

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





דוגמה 1: הסר את רכיב האלמנט הראשון

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

// כלול ספריות נחוצות

#לִכלוֹל

#לִכלוֹל

באמצעות מרחב שמותשעה (ות;

// הצג את ערכי הווקטור

בָּטֵלdisplay_vector(וֶקטוֹר<חוּט>פירות)

{

// אתחל את המונה

intדֶלְפֵּק= 1;

// חזר והדפס את האלמנטים של הווקטור באמצעות לולאה

ל (אוטומטיהוא=פירות.התחל();הוא!=פירות.סוֹף();הוא++)

{

// בדוק שהאלמנטים הם האלמנט האחרון או לא

אם(דֶלְפֵּק!=פירות.גודל())

עֲלוּת << *הוא<< ',';

אַחֵר

עֲלוּת << *הוא;

// הגדל את המונה ב -1

דֶלְפֵּק++;

}

עֲלוּת <<endl;

}

intרָאשִׁי(בָּטֵל) {

// הכריז על וקטור של נתוני מחרוזת

וֶקטוֹר<חוּט>פירות= { 'תפוז','בננה','מנגו','ג'ק פרוט','ליצ'י' };

// הדפס את הערכים הקיימים של הווקטור

עֲלוּת << 'ערכי הווקטור לפני הסרה:' <<endl;

display_vector(פירות);

// הסר את האלמנט הראשון מהווקטור

פירות.לִמְחוֹק(פירות.התחל());

// הדפס את הערכים הקיימים של הווקטור לאחר הסרתו

עֲלוּת << ' nערכי הווקטור לאחר הסרה: ' <<endl;

display_vector(פירות);

לַחֲזוֹר 0;

}

תְפוּקָה:

הפלט הבא יופיע לאחר ביצוע הקוד לעיל.



דוגמה 2: הסר אלמנטים מרובים

צור קובץ C ++ עם הקוד הבא כדי להסיר את המרכיבים המרובים מהווקטור באמצעות הפונקציה מחק (). בקוד נעשה שימוש וקטור של ערכי מספר שלם. שני איטרטורים שימשו כאן לקביעת טווח האלמנטים שהוסרו מהווקטור. הפונקציה מחק () שימשה עם שני פרמטרים להסרת מרכיבים מרובים מהווקטור.

// כלול ספריות נחוצות

#לִכלוֹל

#לִכלוֹל

באמצעות מרחב שמותשעה (ות;

// הצג את הווקטור

בָּטֵלdisplay_vector(וֶקטוֹר<int>מספרים)

{

// הדפס את ערכי הווקטור באמצעות לולאה

ל(אוטומטיהוא=מספרים.התחל();הוא!=מספרים.סוֹף() ;הוא++)

עֲלוּת << *הוא<< '';

// הוסף שורה חדשה

עֲלוּת << ' n';

}

intרָאשִׁי() {

// הכריז על וקטור של נתונים שלמים

וֶקטוֹר<int>intArray{ 678,435,960,231,800,387,634,267,409,294};

// הדפס את הערכים הקיימים של הווקטור

עֲלוּת << 'ערכי הווקטור לפני הסרה:' <<endl;

display_vector(intArray);

// הצהירו על שני איטרטורים להסרת טווח האלמנטים מהווקטור

וֶקטוֹר<int> :: איטרציהstartEle, endEle;

// הגדר את האיטרור למיקום הראשון

startEle=intArray.התחל();

// הגדל את האיטרור המתחיל ב -2

לְקַדֵם(startEle,2);

// הגדר את האיטרור למיקום האחרון

endEle=intArray.סוֹף();

// הפחת את איטרור הסיום ב -3

לְקַדֵם(endEle,-3);

// הסר את טווח האלמנטים

intArray.לִמְחוֹק(startEle, endEle);

// הדפס את הערכים הקיימים של הווקטור לאחר הסרתו

עֲלוּת << ' nערכי הווקטור לאחר הסרה: ' <<endl;

display_vector(intArray);

לַחֲזוֹר 0;

}

תְפוּקָה:

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

דוגמה 3: הסר את האלמנטים הספציפיים

צור קובץ C ++ עם הקוד הבא כדי להסיר את האלמנטים הספציפיים של הווקטור באמצעות הפונקציה מחק (). וקטור של 7 אלמנטים שלמים הוכרז בקוד. לאחר מכן, הלולאה 'למען' השתמשה לאיטרציה של האלמנטים הווקטוריים והסרת אותם אלמנטים מהווקטור שאינם ניתנים לחלוקה ב- 5.

// כלול ספריות נחוצות

#לִכלוֹל

#לִכלוֹל

באמצעות מרחב שמותשעה (ות;

intרָאשִׁי()

{

// הכריז על וקטור של נתונים שלמים

וֶקטוֹר<int>מספרים= { 78,ארבע חמש,67,25,98,75,52 };

עֲלוּת << 'ערכי הווקטור לפני הסרה: n';

ל (int קבוע &אני:מספרים) {

עֲלוּת <<אני<< '';

}

עֲלוּת <<endl;

// הסר את המספרים מהווקטור אלה שאינם ניתנים לחלוקה ב- 5

ל (אוטומטיהוא=מספרים.התחל();הוא!=מספרים.סוֹף();הוא++)

{

// בדוק שהמספר מתחלק ב -5 או לא

אם (*הוא% 5 != 0)

{

// הסר את האלמנט המבוסס על האיטרטור

מספרים.לִמְחוֹק(הוא-);

}

}

עֲלוּת << 'ערכי הווקטור לאחר הסרה: n';

ל (int קבוע &אני:מספרים) {

עֲלוּת <<אני<< '';


}


עֲלוּת <<endl;


לַחֲזוֹר 0;

}

תְפוּקָה:

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

סיכום:

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