ผลต่างระหว่างรุ่นของ "Psl66/week02 stl1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 14: แถว 14:
 
** <tt>push_front</tt> และ <tt>push_back</tt> ใส่ข้อมูลที่ด้านหน้า ใส่ข้อมูลที่ด้านท้าย
 
** <tt>push_front</tt> และ <tt>push_back</tt> ใส่ข้อมูลที่ด้านหน้า ใส่ข้อมูลที่ด้านท้าย
 
** <tt>pop_front</tt> และ <tt>pop_back</tt> เอาข้อมูลหน้าสุดทิ้ง เอาข้อมูลท้ายสุดทิ้ง
 
** <tt>pop_front</tt> และ <tt>pop_back</tt> เอาข้อมูลหน้าสุดทิ้ง เอาข้อมูลท้ายสุดทิ้ง
 +
 +
* '''<tt>ic</tt>''' ข้อนี้น่าจะฝึกหัดทั่วไป ฝึกฟังก์ชันชุดเดียวกับด้านบน
 +
 +
* '''<tt>trains</tt>''' ข้อนี้ ถ้าเขียน linked list เองอาจจะตรงไปตรงมา แต่ถ้าใช้ STL  ตอนย้ายขบวนรถข้ามชานชลา ถ้าทำตรง ๆ ไม่น่าจะทำงานได้ทัน ต้องใช้ฟังก์ชัน `splice` [https://en.cppreference.com/w/cpp/container/list/splice ref] เดี๋ยวจะมีคลิปอธิบายเพิ่มเติม
 +
 +
* '''<tt>uva514_rails</tt>''' ให้ทดลองดูว่าลำดับของตู้ควรจะเป็นอย่างไรจึงจะสามารถเปลี่ยนได้ (hint: ให้พิจารณาการที่ตู้รถไฟเข้าและออกจากรางพิเศษในลำดับอย่างไร)

รุ่นแก้ไขเมื่อ 10:19, 2 ธันวาคม 2566

หน้านี้เป็นส่วนหนึ่งของวิชา Problem solving lab ปีการศึกษา 2566

สัปดาห์นี้โจทย์จะเป็นการฝึกใช้ STL โดยเน้นเกี่ยวกับ list, stack และ queue

คลิปประกอบ แนะนำ STL

เอกสาร STL: std::list ที่ cppref, list ที่ cplusplus.com, list ที่ geeksforgeeks

รายการโจทย์และหมายเหตุ

  • listwork1 และ listwork2 ควรทำสองข้อนี้ก่อน โจทย์ถูกออกแบบมาตอนให้เขียน linked list เอง แต่ตอนนี้สามารถใช้ STL ได้เลย
    function ของ list ที่อาจจะเป็นประโยชน์ น่าจะมีดังนี้
    • front และ back ข้อมูลหน้าสุด ข้อมูลหลังสุด
    • push_front และ push_back ใส่ข้อมูลที่ด้านหน้า ใส่ข้อมูลที่ด้านท้าย
    • pop_front และ pop_back เอาข้อมูลหน้าสุดทิ้ง เอาข้อมูลท้ายสุดทิ้ง
  • ic ข้อนี้น่าจะฝึกหัดทั่วไป ฝึกฟังก์ชันชุดเดียวกับด้านบน
  • trains ข้อนี้ ถ้าเขียน linked list เองอาจจะตรงไปตรงมา แต่ถ้าใช้ STL ตอนย้ายขบวนรถข้ามชานชลา ถ้าทำตรง ๆ ไม่น่าจะทำงานได้ทัน ต้องใช้ฟังก์ชัน `splice` ref เดี๋ยวจะมีคลิปอธิบายเพิ่มเติม
  • uva514_rails ให้ทดลองดูว่าลำดับของตู้ควรจะเป็นอย่างไรจึงจะสามารถเปลี่ยนได้ (hint: ให้พิจารณาการที่ตู้รถไฟเข้าและออกจากรางพิเศษในลำดับอย่างไร)