פונקציית Vector Erase() ב-C++

Pwnqzyyt Vector Erase B C



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

תחביר:

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







מחיקת איטרטור ( מיקום איטרטור ) ;

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



מחיקת איטרטור ( iterator start_position, iterator ending_position ) ;

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



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

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





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

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

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

#include

#include

באמצעות מרחב שמות סטד ;

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

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

{

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

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

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

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

{

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

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

cout << * הוא << ',' ;

אַחֵר

cout << * הוא ;

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

דֶלְפֵּק ++ ;

}

cout << endl ;

}

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

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

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

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

cout << 'הערכים של הווקטור לפני הסרה:' << endl ;

display_vector ( פירות ) ;

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

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

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

cout << ' \n הערכים של הווקטור לאחר ההסרה: ' << endl ;

display_vector ( פירות ) ;

לַחֲזוֹר 0 ;

}

תְפוּקָה:

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



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

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

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

#include

#include

באמצעות מרחב שמות סטד ;

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

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

{

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

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

cout << * הוא << '' ;

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

cout << ' \n ' ;

}

int רָאשִׁי ( ) {

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

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

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

cout << 'הערכים של הווקטור לפני הסרה:' << endl ;

display_vector ( intArray ) ;

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

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

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

להתחיל אותם = intArray. התחל ( ) ;

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

לְקַדֵם ( להתחיל אותם, 2 ) ;

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

endEle = intArray. סוֹף ( ) ;

//הקטין את האיטרטור הסיום ב-3

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

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

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

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

cout << ' \n הערכים של הווקטור לאחר ההסרה: ' << endl ;

display_vector ( intArray ) ;

לַחֲזוֹר 0 ;

}

תְפוּקָה:

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

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

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

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

#include

#include

באמצעות מרחב שמות סטד ;

int רָאשִׁי ( )

{

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

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

cout << 'הערכים של הווקטור לפני הסרה: \n ' ;

ל ( int const & אני : מספרים ) {

cout << אני << '' ;

}

cout << endl ;

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

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

{

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

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

{

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

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

}

}

cout << 'הערכים של הווקטור לאחר ההסרה: \n ' ;

ל ( int const & אני : מספרים ) {

cout << אני << '' ;


}


cout << endl ;


לַחֲזוֹר 0 ;

}

תְפוּקָה:

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

סיכום:

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