กำหนดให้เป็นหน้าที่แสดงการทำงานของฟังก์ชัน forward_list::emplace_after() และ forward_list::emplace_front() ใน c++
forward_list จะรักษาความเชื่อมโยงกับองค์ประกอบถัดไปเท่านั้น ซึ่งแตกต่างจากรายการปกติที่เชื่อมโยงกับองค์ประกอบถัดไปและองค์ประกอบก่อนหน้า ซึ่งช่วยให้ทำซ้ำได้ในทั้งสองทิศทาง แต่ forward_list วนซ้ำได้ในทิศทางไปข้างหน้าเท่านั้น
ฟังก์ชัน forward_list::emplace_after() และ forward_list::emplace_front() เป็นส่วนหนึ่งของไลบรารีมาตรฐาน c++
ฟังก์ชัน forward_list::emplace_after() ใช้เพื่อแทรกองค์ประกอบใหม่ในรายการหลังจากองค์ประกอบที่ระบุตำแหน่งภายในอาร์กิวเมนต์
ฟังก์ชัน forward_list::emplace_front() ใช้เพื่อแทรกองค์ประกอบที่จุดเริ่มต้นของรายการ
forward_list::emplace_after()
ไวยากรณ์
Forward_List_Name.emplace_after(iterator , element);
พารามิเตอร์
ฟังก์ชันยอมรับสองพารามิเตอร์ -
ตัววนซ้ำ , iterator มีตำแหน่งที่จะต้องวางองค์ประกอบใหม่
องค์ประกอบ , มันมีองค์ประกอบที่จะต้องวาง.
ผลตอบแทนที่ได้รับ
ฟังก์ชันส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบใหม่ที่ถูกวางไว้ในรายการส่งต่อ
forward_list::emplace_front()
ไวยากรณ์
Forward_List_Name.emplace_front(element);
พารามิเตอร์
ฟังก์ชันนี้ยอมรับพารามิเตอร์หนึ่งตัว
ผลตอบแทนที่ได้รับ
ฟังก์ชันไม่ส่งคืนสิ่งใด
ตัวอย่าง
Input: 11,34,56 Output: 41 11 34 56
คำอธิบาย −
ที่นี่เราสร้างรายการส่งต่อ Lt พร้อมองค์ประกอบ 11,34,56 จากนั้นเราเรียกฟังก์ชัน emplace_front() ที่ใช้ในการแทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการส่งต่อ และที่นี่องค์ประกอบนั้นคือ 41
ดังนั้นเมื่อเราพิมพ์รายการส่งต่อ ผลลัพธ์ที่สร้างคือ 41 11 34 56 ซึ่งมีองค์ประกอบแรกเป็น 41
แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้ −
- ขั้นแรกให้สร้างรายการ ให้เราพูดว่า "Lt" ของประเภท int และกำหนดค่าบางอย่างให้กับมัน
- จากนั้นเรียกใช้ฟังก์ชัน emplace_front() เพื่อวางองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการ
- จากนั้นสร้างวัตถุประเภท auto ให้เราพูดว่า "itr" ที่จะทำงานเป็นตัววนซ้ำของเราเพื่อเก็บตำแหน่งที่จะส่งผ่านไปยังตำแหน่ง emplace_after() ถัดจากตำแหน่งที่จะวางองค์ประกอบใหม่ของเรา ระบุตำแหน่ง ให้เราพูดว่า จุดสิ้นสุดของรายการ
- จากนั้นเรียกใช้ฟังก์ชัน emplace_after() เพื่อเข้าสู่องค์ประกอบในตำแหน่งที่ระบุ อาร์กิวเมนต์แรกควรเป็นตัววนซ้ำ "itr" ที่ระบุตำแหน่งในรายการ และอาร์กิวเมนต์ที่สองควรเป็นองค์ประกอบที่จะวางที่ตำแหน่งนั้น
อัลกอริทึม
Start Step 1->In function main() Initialize forward_list<int> Lt={} Call function Lt.emplace_front() Initialize auto itr=Lt.end(); Call Lt.emplace_after(itr , element) End Stop
ตัวอย่าง
#include<iostream> #include<list> using namespace std; int main() { forward_list<int> Lt = { 5,6,7,8 }; //Using the emplace_front() function to place element at the beginning. Lt.emplace_front(3); auto itr = Lt.end(); /*Using the emplace_after() function to place an element after the location specified*/ Lt.emplace_after(itr , 10) //Displaying the list for(auto itr = Lt.begin() ; itr!=Lt.end ; itr++) cout<<” *itr ”<<” ”; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
3 5 6 7 8 10