תור
שיעור 11 מתוך 23 בקורס C++ - ספריית התבניות הסטנדרטית של Coddy.
תור C++ הוא מבנה נתונים שמספק לנו את הפונקציונליות של תור; ליתר דיוק, הוא פועל לפי עקרון FIFO (נכנס ראשון — יוצא ראשון). משמעות הדבר היא שהאיברים שנוספו ראשונים לתור ייצאו ממנו, כלומר יוסרו ממנו ראשונים.

queue<dataType> queueName;כדי ליצור תור ב-C++, עלינו לכלול את קובץ הכותרת queue בראש קובץ ה-C++ באמצעות #include <queue>.
כעת נוכל להכריז על תור בתוכנית שלנו כך:
queue<int> queueOfNums;עלינו ללמוד כיצד להוסיף איברים חדשים לתור. נעשה זאת באמצעות המתודה push(). המתודה push() מכניסה איבר חדש לסוף התור.
queueOfNums.push(1);
queueOfNums.push(2);
...כעת נרצה להציג את איברי התור. מכיוון שמדובר בתור, נוכל להציג את האיבר הראשון שנוסף אליו. לשם כך נשתמש במתודה front(). היא מחזירה את האיבר הראשון בתור.
cout << queueOfNums.front();Output:
1בניגוד למחסנית, שבה אפשר להציג רק את האיבר העליון, כלומר את האיבר האחרון שנוסף למחסנית, בתור אפשר להציג גם את הערך האחרון. נעשה זאת באמצעות המתודה back(), שמחזירה את האיבר האחרון בתור.
queueOfNums.push(3);
cout << queueOfNums.back();Output:
3עלינו ללמוד גם כיצד להסיר איברים מהתור. למרבה הצער, אפשר להסיר רק את האיבר שבחזית, זה שנוסף ראשון, משום שזהו תור. לכן אי אפשר להסיר קודם את האיבר האחרון; לשם כך משתמשים במחסנית ובעקרון LIFO (נכנס אחרון — יוצא ראשון).
לכן נסיר את האיבר שבחזית באמצעות המתודה pop().
queueOfNums.pop();
cout << queueOfNums.front() << endl;
queueOfNums.pop();
cout << queueOfNums.front();Output:
1
2מתודות של תור
| מתודה | פונקציונליות |
size() | מחזירה את מספר האיברים בתור |
empty() | מחזירה true אם התור ריק, ו-false אחרת |
swap() | מחליפה את התוכן של תור אחד בתוכן של תור אחר |
אתגר
קלנתונים 10 מספרים מהקלט. השתמשו בתור והציגו את המספרים על ידי הסרתם בזה אחר זה והצגת המספרים הזוגיים בלבד.
Input
1 2 3 4 5 6 7 8 9 10Output
2 4 6 8 10נסו בעצמכם
#include <queue>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}כל השיעורים ביחידה C++ - ספריית התבניות הסטנדרטית
תרגלו בעצמכם: קומפיילר C++ אונליין