صف یا queue ساختاریه که عناصر به همون ترتیبی که وارد میشن از صف خارج میشن : (First in First out -FIFO )
deque صفی هستش که هم میشه به اول هم به آخرش عنصر اضافه کرد .
std::vector و std::dequeu تقریبا شبیه هم هستن ولی یک سری تفاوت جزیی هم دارن .
-
برای اضافه کردن عنصر به اول dequeu دو تابع push_front و pop_front میتونین استفاده کنین که هر 2 این عملیات ها از (1)O هستن ولی وکتور این 2 تا تابع رو نداره و انجام این عملیات براش خطیه یعنی (O(n دلیلشم اینه که به خاطر پیوسته بودن حافظه در وکتور تمام عناصر باید شیفت داده بشن .
-
vector و dequeu هر 2 اجازه دسترسی راندوم به عناصر رو میدن .
-
حافظه در vector مثل آرایه پیوستست (contiguous ) برای همین می تونید به عنوان آرایه هم ازش استفاده کنین (مثلا به تابعی که ورودیش آرایه هست وکتور بفرستین ) ولی این مورد برای deque صدق نمی کنه .
-
deque بر خلاف vector متدی برای reserve کردن حافظه نداره .