Menu
Coddy logo textTech

תור

שיעור 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()מחליפה את התוכן של תור אחד בתוכן של תור אחר
challenge icon

אתגר

קל

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

 

Input
1 2 3 4 5 6 7 8 9 10
Output
2 4 6 8 10

נסו בעצמכם

#include <queue>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

כל השיעורים ביחידה C++ - ספריית התבניות הסטנדרטית

תרגלו בעצמכם: קומפיילר C++ אונליין