כיצד להשתמש בפונקציה Upper_bound() ב-C++

Kyzd Lhstms Bpwnqzyh Upper Bound B C



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

מהי פונקציית upper_bound() ב-C++

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







יש לו שני סוגים שונים של טיעונים:



num upper_bound ( על אחד. ראשון , על אחד. אחרון , ערך )

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



num upper_bound ( על אחד. ראשון , על אחד. אחרון ,  value, compare comp )

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





כיצד להשתמש בפונקציה upper_bound() ב-C++

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

דוגמה 1: שימוש בפונקציה upper_bound() כדי למצוא את המיקום של אלמנט במערך ממוין

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



#include

#include

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

int רָאשִׁי ( )

{

int מַעֲרָך [ ] = { חֲמֵשׁ עֶשׂרֵה , 35 , ארבע חמש , 55 , 65 } ;

int א = מידה של ( מַעֲרָך ) / מידה של ( מַעֲרָך [ 0 ] ) ;

cout << 'מערך מכיל:' ;

ל ( int אני = 0 ; אני < א ; אני ++ )

cout << מַעֲרָך [ אני ] << '' ;

cout << ' \n ' ;

int ב = ארבע חמש ; // להצהיר ולאתחל ערך

int * ע = עליונה_גבול ( מערך, מערך + א, ב ) ;

cout << 'גבול עליון של' << ב << 'נמצא בעמדה:' << ( ע - מַעֲרָך ) << ' \n ' ; // הצג את המיקום באמצעות אריתמטיקה של מצביע

לַחֲזוֹר 0 ;

}

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

דוגמה 2: שימוש בפונקציה upper_bound() כדי למצוא את האלמנט הגדול הבא בקבוצה

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

#include

#include

#include

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

int רָאשִׁי ( )

{

מַעֲרֶכֶת < int > על אחד = { חֲמֵשׁ עֶשׂרֵה , 25 , 35 , ארבע חמש , 55 } ; // להצהיר ולאתחל קבוצה של מספרים שלמים

cout << 'מספרים נתונים:' ;

ל ( אוטומטי א : על אחד ) // הצג את רכיבי הקבוצה באמצעות לולאה מבוססת טווח

cout << א << '' ;

cout << ' \n ' ;

int א = ארבע חמש ; // להצהיר ולאתחל ערך

אוטומטי זה = עליונה_גבול ( על אחד. התחל ( ) , על אחד. סוֹף ( ) , א ) ; // מצא את הגבול העליון של x בקבוצה באמצעות upper_bound()

אם ( זה ! = על אחד. סוֹף ( ) ) // בדוק אם האיטרטור חוקי

cout << 'המספר הבא גבוה יותר מ' << א << 'הוא' << * זה << ' \n ' ; // הצג את האלמנט באמצעות אופרטור dereference

אַחֵר

cout << 'אין מספר גבוה יותר מ' << א << ' \n ' ; // הצג הודעה אם לא נמצא רכיב כזה

לַחֲזוֹר 0 ;

}

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

סיכום

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