Avatar ·

هل توجد في Rust مجموعات من نوع queue و stack؟

مرحبًا بالجميع! بدأت تعلم Rust مؤخرًا، ولدي سؤال حول هياكل البيانات. في لغات أخرى (مثل C++ أو Python) توجد queues و stacks مدمجة. حاولت العثور على شيء مشابه في المكتبة القياسية لـ Rust، لكنني لم أتوصل بعد. إليك ما جربته: أريد كتابة برنامج يعالج المهام بترتيب وصولها (FIFO). أنشأت vector واستخدمت `push` للإضافة، وللاستخراج حاولت استخدام `remove(0)`، لكن المترجم يشتكي من الأداء. إليك مثال: ```rust fn main() { let mut queue: Vec = Vec::new(); queue.push(1); queue.push(2); queue.push(3); // أحاول استخراج العنصر الأول let first = queue.remove(0); println!("{}", first); } ``` هذا يعمل، لكنني سمعت أن `remove(0)` لـ `Vec` هو O(n)، لأن جميع العناصر تنتقل. بالنسبة لـ stack كنت سأستخدم `pop()` الذي يعمل بـ O(1)، لكن هذا LIFO. وأنا أحتاج FIFO. أخبروني، هل توجد في Rust queues مناسبة؟