תור דו־כיווני
שיעור 6 מתוך 23 בקורס C++ - ספריית התבניות הסטנדרטית של Coddy.
Deque הוא מכל רציף ב-C++ שמכונה גם תור דו-קצוות. בהמשך הקורס, בפרק על מתאמי מכלים, תלמד על תור רגיל. לעת עתה, חשוב לדעת שבתור רגיל מוסיפים איברים מהסוף ומסירים אותם מהחזית. לעומת זאת, ב-deque אפשר להוסיף ולהסיר איברים גם מהחזית וגם מהסוף.

נממש את מבנה הנתונים deque באמצעות הכללת הספרייה בראש קובץ ה-.cpp שלנו בעזרת #import <deque> (אפשר גם לגשת ל-deque על ידי הכללת קובץ הכותרת bits/stdc++.h)
לאחר מכן, ניצור deque באמצעות התחביר הבא:
deque<data_type> deque_name;ראשית, משתמשים במילת המפתח deque. שנית, מציינים את סוג המשתנה שברצוננו לאחסן בתוך ה-deque, ולבסוף מציינים את שם המשתנה של ה-deque.
deque<int> numbers;אפשר גם לאתחל deque בזמן ההכרזה עליו, באמצעות התחביר שבו השתמשנו עבור מבנה הנתונים vector:
deque<int> numbers = {1, 2, 3, 4, 5};
cout << numbers[0];Output:
1כדי להוסיף איבר לסוף ה-deque משתמשים בשיטה push_back(), וכדי להוסיף איבר לחזית משתמשים בשיטה push_front().
deque<int> numbers = {2, 3};
numbers.push_front(1);
numbers.push_back(4);
for(int i = 0; i < numbers.size(); i++)
cout << numbers[i] << " ";Output:
1 2 3 4שיטות של Deque
| שיטה | תפקיד |
| push_back() | מוסיפה איבר חדש לסוף |
| push_front() | מוסיפה איבר חדש לחזית |
| pop_back() | מסירה את האיבר מהסוף |
| pop_front() | מסירה את האיבר מהחזית |
| size() | מחזירה את מספר האיברים |
| empty() | מחזירה האם ה-deque ריק |
| clear() | מסירה את כל האיברים מה-deque |
אתגר
קלהמשתמש יזין מספרים חיוביים עד שיזין -1. יש לעבור על המספרים ולהוסיף כל אחד מהם ל-deque: את הראשון בהתחלה, את השני בסוף, את השלישי בהתחלה וכן הלאה... לאחר מכן, יש לעבור על ה-deque בלולאה ולהציג כל איבר, עם רווח אחד בין האיברים.
Input
5
10
15
20
25
30
-1Output
25 15 5 10 20 30נסו בעצמכם
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}כל השיעורים ביחידה C++ - ספריית התבניות הסטנדרטית
תרגלו בעצמכם: קומפיילר C++ אונליין