คำถามติดแท็ก queue

1
Message Queue สำหรับ RTOS สำหรับไมโครคอนโทรลเลอร์
ฉันกำลังเขียน RTOS สำหรับไมโครคอนโทรลเลอร์ สิ่งทั้งหมดเขียนใน C ++ 11 - ถ้าใครสนใจและลิงค์ไปยังที่เก็บอยู่ด้านล่าง ขณะนี้ฉันกำลังเขียนคลาสที่เป็นคิวข้อมูลแบบง่ายสำหรับการส่งวัตถุระหว่างเธรด (หรือระหว่างตัวจัดการอินเตอร์รัปต์และเธรดหรือตัวจัดการอินเตอร์รัปต์และตัวจัดการอินเตอร์รัปต์อื่น) โดยปกติฉันพยายามติดตาม API ทั่วไปที่พบในโครงการอื่น ๆ แต่ฉันไม่พบตัวอย่างของคิวที่เกิดขึ้นพร้อมกันที่มีemplace()ฟังก์ชันและรองรับการหมดเวลา "ปัญหา" ทั่วไปของฉันคือฉันไม่สามารถตัดสินใจระหว่างสองอินเตอร์เฟส: ( std::chrono::duration<Rep, Period>เป็นเทมเพลตฉันละเว้นเทมเพลตสำเร็จรูปเพื่อความชัดเจน) รุ่นแรก: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, Args&&... args); int tryPopFor(T&, std::chrono::duration<Rep, Period>); int tryPushFor(const T&, std::chrono::duration<Rep, Period>); int tryPushFor(T&&, std::chrono::duration<Rep, Period>); ... …

13
อะไรคือตัวอย่างที่ดีและเรียบง่ายสำหรับคิว? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังสอนCS2 ( Java and data structures) และฉันมีปัญหาในการหาตัวอย่างที่ดีที่จะใช้เมื่อสอนคิว แอปพลิเคชันหลักสองอย่างที่ฉันใช้สำหรับการmultithreadedส่งข้อความ (แต่การเขียนโปรแกรม MT อยู่นอกขอบเขตสำหรับหลักสูตร) ​​และBFS-style algorithms(และฉันจะไม่ครอบคลุมกราฟจนกว่าจะถึงระยะหลัง) ฉันยังต้องการหลีกเลี่ยงตัวอย่างที่วางแผนไว้ สิ่งที่ฉันคิดว่าถ้าฉันจะแก้ปัญหาพวกเขาในแบบเธรดเดียวฉันจะใช้ลิสต์แทนคิว ฉันมักจะใช้คิวเฉพาะเมื่อการประมวลผลและการค้นพบเป็น interleaved (เช่นการค้นหา) หรือในกรณีพิเศษอื่น ๆ เช่นบัฟเฟอร์ที่มีความยาว จำกัด (เช่นการบำรุงรักษารายการNสุดท้าย) ในทางปฏิบัติฉันพยายามสอนนักเรียนถึงวิธีที่ดีในการทำสิ่งต่าง ๆ ในโปรแกรมจริงไม่ใช่แค่ของเล่นเพื่อแสดงคุณลักษณะ คำแนะนำเกี่ยวกับอัลกอริทึมที่ดีเรียบง่ายหรือแอปพลิเคชันของคิวที่ฉันสามารถใช้เป็นตัวอย่าง แต่จำเป็นต้องมีความรู้ขั้นต่ำอื่น ๆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.