C++ Tuple

C Tuple



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

מהו Tuple בשפת תכנות C++?

tuple בשפת תכנות c++ הוא אובייקט שמחזיק רשימה מסודרת של פריטים. זהו סוג נתונים בלתי משתנה מה שאומר שלא ניתן לשנות את הערכים ב-tuple בשום נקודת ביצוע. הערך של tuple ניתן בסוגריים העגולים () המופרדים בפסיק וניתן לגשת אליו באמצעות הפניה של האינדקס. ישנן פונקציות רבות שניתן לבצע על tuple, כלומר, get(), swap(), tuple_size() וכו'. בסעיפים הנוספים, נסביר את פעולתן של 4 הפונקציות בעזרת דוגמאות.

דוגמה 1:
בדוגמה זו, ניצור tuple באמצעות הפונקציה make_tuple() . ה-make_tuple() משמש בתוכנת c++ כדי להקצות ערך ל-tuple. הערכים שיש להקצות ל-tuple צריכים להיות באותו סדר כפי שהם הוכרזו ב-tuple. תן לנו לראות את הקוד המצורף למטה כדי להבין איך הפונקציה make_tuple() פועלת בתוכנת c++.







הספריות 'include ' ו-'using namespace std' כלולות בתוכנית כדי להשתמש בפונקציות הקלט והפלט הסטנדרטיות כמו cin ו-cout. ה-'include ' יאפשר שימוש ב-tuple בתוכנית. הקוד המלא מסופק בפונקציה main() . tuple 't' מוכרז עם חמישה אלמנטים, . הערכים של ה-tuple נדרשים לפעול באותו סדר. כפי שניתן לראות, ('a', 75, 5, 'z', 5.5) בפונקציה make_tuple() נמצאים באותו סדר כמו הערכים שהוכרזו עבור tuple. לאחר ביצוע קוד זה, לא תקבל דבר בתמורה המעיד על כך שהביצוע מוצלח.



#include
#include
באמצעות מרחב שמות סטד ;
int רָאשִׁי ( )
{
tuple < לְהַשְׁחִיר , int , int , לְהַשְׁחִיר , לָצוּף > ט ;
ט = make_tuple ( 'א' , 75 , 5 , 'עם' , 5.5 ) ;
לַחֲזוֹר 0 ;
}



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





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



דוגמה 2:
בדוגמה זו, הפונקציה get() משמשת ב-tuple כדי להציג את הערכים שלה. ניתן להדפיס את הערכים של tuples רק עם הפונקציה get() בשפת התכנות c++. ראה את הקוד למטה.

שימו לב שהשתמשנו באותו קוד ובנתונים לדוגמה כפי שהשתמשנו בדוגמה הקודמת. על ידי שימוש בפונקציה make_tuple(), הערכים מוקצים בהצלחה ל-tuple. הפונקציה get() משמשת לגישה לערכי ה-tuple על ידי הפניה למספר האינדקס החל מ-0. כל מספר אינדקס ניתן לפונקציה get() וכל הערכים של ה-tuple מודפסים עם המשפט cout.

#include
#include
באמצעות מרחב שמות סטד ;
int רָאשִׁי ( )
{
tuple < לְהַשְׁחִיר , int , int , לְהַשְׁחִיר , לָצוּף > ט ;
ט = make_tuple ( 'א' , 75 , 5 , 'עם' , 5.5 ) ;
int אני ;
cout << 'הערכים של tuple הם:' ;
cout << לקבל < 0 > ( ט ) << '' << לקבל < 1 > ( ט ) << '' << לקבל < שתיים > ( ט )
<< '' << לקבל < 3 > ( ט ) << '' << לקבל < 4 > ( ט ) << endl ;
לַחֲזוֹר 0 ;
}

בדוק את הפלט של קוד זה בצילום המסך המופיע להלן:

הפונקציה get() מדפיסה את הערכים באותו סדר כפי שהם מוקצים ל-tuple.

דוגמה 3:
בדוגמה זו, נדגים את פעולת הפונקציה tuple_size() . בעזרת דוגמה לדוגמה, נסביר כיצד לקבל גודל של tuple באמצעות הפונקציה tuple_size. בדוק את הקוד המופיע למטה.

שאר שורות הקוד זהות לאלו שהשתמשו בהן בדוגמאות קודמות. הפונקציה tuple_size כאן תקבל את גודל ה-tuple. ה-'decltype' מייצג את הטיפוס המוצהר המשמש לבחינת סוג הביטוי הנתון.

#include
#include
באמצעות מרחב שמות סטד ;
int רָאשִׁי ( )
{
tuple < לְהַשְׁחִיר , int , int , לְהַשְׁחִיר , לָצוּף > ט ;
ט = make_tuple ( 'א' , 75 , 5 , 'עם' , 5.5 ) ;
int אני ;
cout << 'הגודל של tuple הוא = ' ;
cout << גודל_tuple < decltype ( ט ) > :: ערך << endl ;
לַחֲזוֹר 0 ;
}

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

הקצינו 5 ערכים ל-tuple והפונקציה tuple_size() החזירה גם את הגודל של tuple 5.

דוגמה 4:
נוכל לשרשר את ה-tuples באמצעות הפונקציה tuple_cat() וליצור מתוכם tuple חדש. כאן, נדגים את השימוש בפונקציה tuple_cat() לשרשור שני tuples.

בקוד שניתן להלן, הכרזנו על שני tuples t1 ו-t2 והקצינו 3/3 ערכים לכל tuple. לאחר מכן, השתמשנו בפונקציה tuple_cat() כדי לשרשר את שני הטפולים וליצור מתוכם tuple חדש. לאחר מכן, פשוט הדפסנו את הערכים של כל הטפולים באמצעות הפונקציה get() . הפונקציה tuple_cat() לוקחת את ה-tuples שצריך לשרשר, משלבת את הערכים שהוקצו לכל tuple ויוצרת מתוכו tuple חדש.

שימו לב שלטופלים t1 ו-t2 יש 3/3 ערכים והדפיסנו כל ערך באמצעות הפונקציה get() על ידי הפניה ממדד 0 לאינדקס 2. עם זאת, כאשר הם משורשרים, הערכים הכוללים יהיו 6. לכן, אנחנו צריכים כדי להדפיס את האינדקס מ-0 עד 5 כך שכל הערכים יודפסו. בדוק את הפלט למטה ושימו לב ש-3 ערכים מודפסים על ה-tuple t1; 3 ערכים מודפסים על tuple 2. עם זאת, 6 ערכים מודפסים של tuple 3 שכן הערכים המשורשרים בטופל החדש הם 6.

#include
#include
באמצעות מרחב שמות סטד ;
int רָאשִׁי ( )
{
tuple < לְהַשְׁחִיר , int , לָצוּף > t1 ( 'א' , 75 , 6.7 ) ;
tuple < int , לְהַשְׁחִיר , לָצוּף > t2 ( 10 , 't' , 77.9 ) ;
אוטומטי t3 = tuple_cat ( t1,t2 ) ;
cout << 'הטפל הראשון מכיל =  ' ;
cout << לקבל < 0 > ( t1 ) << '' << לקבל < 1 > ( t1 ) << '' << לקבל < שתיים > ( t1 ) << endl << endl ;
cout << 'הטפל השני מכיל =  ' ;
cout << לקבל < 0 > ( t2 ) << '' << לקבל < 1 > ( t2 ) << '' << לקבל < שתיים > ( t2 ) << endl << endl ;
cout << 'הטפל החדש הוא = ' ;
cout << לקבל < 0 > ( t3 ) << '' << לקבל < 1 > ( t3 ) << '' << לקבל < שתיים > ( t3 ) << ''
<< לקבל < 3 > ( t3 ) << '' << לקבל < 4 > ( t3 ) << '' << לקבל < 5 > ( t3 ) << endl ;
לַחֲזוֹר 0 ;
}

הנה הפלט:

סיכום

מאמר זה הוא סקירה כללית של tuples בשפת התכנות c++. ה-tuple ב-c++ הוא אובייקט בלתי ניתן לשינוי הנושא את הערכים של סוגי נתונים שונים בו-זמנית. לא ניתן לשנות או לשנות את הטפולים בכל נקודת ביצוע מכיוון שהם בלתי ניתנים לשינוי. ניתן לבצע מספר פונקציות על tuples כדי להשיג תוצאה מסוימת, 4 מהן מודגמות במאמר זה עם דוגמאות לדוגמא.