STL ב- c ++: כל מה שאתה צריך לדעת



מאמר זה יספק לכם ידע מפורט ומקיף על STL ב- C ++ וייתן לכם מושג גם לגבי המכולות השונות.

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

ממשיכים במאמר זה על STL ב- C ++





תבניות C ++

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

ממשיכים במאמר זה על STL ב- C ++



פונקציות גנריות ו- STL

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

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

תחביר:



באמצעות מרחב שמות STD

ל- STL שלושה מרכיבים

  • מיכלים

  • אלגוריתמים

  • מחטבים

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

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

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

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

Container-STL-in-C++

ממשיכים במאמר זה על STL ב- C ++

מיכלים

STL מגדיר עשרה מכולות המקובצות לשלוש קטגוריות.

מיכלים

תיאור

קובץ הכותרת

סוג של טרנספורמציה באינפורמטיקה

איטרטור

וֶקטוֹר

ניתן להגדירו כמערך דינמי. זה מאפשר גישה ישירה לכל אלמנט.

גישה אקראית

רשימה

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

דו - כיווני

ו

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

גישה אקראית

מַעֲרֶכֶת

זהו מיכל משויך לאחסון סטים ייחודיים. מאפשר בדיקה מהירה.

דו - כיווני

רב-סט

זהו מיכל משויך לאחסון סטים שאינם ייחודיים.

דו - כיווני

מַפָּה

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

דו - כיווני

מולטימפ

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

דו - כיווני

לַעֲרוֹם

מחסנית סטנדרטית עוקבת אחרונה אחרונה (LIFO)

אין איטרציה

תוֹר

תור סטנדרטי עוקב אחרי הראשון בפעם הראשונה (FIFO)

אין איטרציה

תור עדיפות

האלמנט הראשון החוצה הוא תמיד האלמנט בעל העדיפות הגבוהה ביותר

אין איטרציה

מיכלי רצף

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

ה- STL מספק שלושה סוגים של רכיבי רצף:

  • וֶקטוֹר
  • רשימה
  • ו

מכולות אסוציאטיביות:

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

מכולות אסוציאטיביות:

  1. מַעֲרֶכֶת
  2. מולטי סט
  3. מַפָּה
  4. מולטימפה

כל המכולות שלעיל מאחסנות נתונים במבנה הנקרא עץ המאפשר מהיר

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

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

נקרא הערך.

מיכלים נגזרים:

ה- STL מספק שלושה מיכלים נגזרים, כלומר, מחסנית, תור ו- Priority_queue. אלה ידועים גם כמתאמי מיכל.

ישנם שלושה סוגים של מיכלים נגזרים:

1. ערימה

2. תור

3. Priority_quue

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

ממשיכים במאמר זה על STL ב- C ++

אלגוריתמים

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

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

אלגוריתם STL, על סמך אופי הפעולות שהם מבצעים, יכול להיות מסווג תחת:

ממשיכים במאמר זה על STL ב- C ++

מחטאים:

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

ישנם חמישה סוגים של איטרטורים:

1. קלט

2. תפוקה

3. קדימה

4. כיווני

5. אקראי

איטרטור

שיטת גישה

כיוון תנועה

יכולת קלט / פלט

הֶעָרָה

קֶלֶט

לינארי

קדימה בלבד

לקריאה בלבד

לא ניתן לשמור

תְפוּקָה

לינארי

קדימה בלבד

כתוב רק

לא ניתן לשמור

קָדִימָה

לינארי

קדימה בלבד

קרוא וכתוב

ניתן להציל

דו - כיווני

לינארי

קדימה ואחורה

קרוא וכתוב

ניתן להציל

אַקרַאִי

אַקרַאִי

קדימה ואחורה

קרוא וכתוב

ניתן להציל

מה זה מופע של שיעור בג'אווה

יש להשתמש בסוגים שונים של איטראטורים עם סוגים שונים של מכולות כאלה בלבד

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

לפיכך הגענו לסוף מאמר זה בנושא 'STL ב- C ++'. אם ברצונך ללמוד עוד, עיין ב מאת אדוריקה, חברת למידה מקוונת אמינה. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה נועד להכשיר אותך לקונספטים מרכזיים של Java וגם עם מסגרות Java שונות כמו Hibernate & Spring.

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