กำหนดให้แสดงการทำงานของ list emplace() function ใน C++
ฟังก์ชัน list::emplace() เป็นส่วนหนึ่งของไลบรารีเทมเพลตมาตรฐาน C++ ใช้เพื่อแทรกค่าภายในรายการที่ผู้ใช้ระบุตำแหน่ง
ควรรวมไฟล์ส่วนหัวเพื่อเรียกใช้ฟังก์ชันนี้
ไวยากรณ์
List_Name.emplace(position,element)
พารามิเตอร์
ฟังก์ชันนี้ใช้พารามิเตอร์สองตัว -
อันดับแรกคือ ตำแหน่ง ซึ่งแสดงถึงตำแหน่งที่จะต้องวางองค์ประกอบใหม่ และส่วนที่สองคือ ค่า ซึ่งแสดงถึงองค์ประกอบที่ต้องแทรกในรายการที่ตำแหน่ง
ผลตอบแทนที่ได้รับ
ฟังก์ชันส่งคืนตัววนซ้ำที่ชี้ไปที่องค์ประกอบที่แทรกใหม่
ตัวอย่าง
Input: list<int> L = { 1,2,3 }
Output: 6 1 2 3 คำอธิบาย − ที่นี่เราสร้างรายการ "L" ของประเภท int ที่มีค่า 1, 2 และ 3 จากนั้นเราสร้างวัตถุ "itr" ซึ่งจะทำงานเป็นตัววนซ้ำของเราเนื่องจากฟังก์ชัน emplace ส่งกลับตัววนซ้ำ เราเลือกตำแหน่งเริ่มต้นของรายการเพื่อวางองค์ประกอบใหม่ซึ่งแสดงโดยอาร์กิวเมนต์แรก อาร์กิวเมนต์ที่สองของเราคือ 6 ซึ่งจะเป็นองค์ประกอบใหม่ที่จะเพิ่มซึ่งสร้างผลลัพธ์เป็น 6 1 2 3
แนวทางที่ใช้ในโปรแกรมด้านล่างนี้ −
- ขั้นแรกให้สร้างรายการประเภท int ให้เราพูดว่า "Lt" และกำหนดค่าบางอย่างให้กับมัน
- จากนั้นสร้างอ็อบเจ็กต์ "itr" ประเภท auto และเริ่มต้นโดยเรียกใช้ฟังก์ชัน emplace “itr” จะเป็นตัววนซ้ำซึ่งจะได้รับค่าส่งคืนของฟังก์ชัน emplace()
- จากนั้นให้อาร์กิวเมนต์แก่ฟังก์ชัน สมมติว่าอาร์กิวเมนต์แรกจะเป็น Lt.end() เพื่อเลือกตำแหน่งสิ้นสุดของรายการ และสำหรับอาร์กิวเมนต์ที่สอง ค่าใดๆ ก็ตามเป็น 7
อัลกอริทึม
Start
Step 1->In function main()
Initialize list<int> Lt={}
Initialize auto itr=Lt.emplace(Lt.end(),7)
Loop For itr=Lt.begin() and itr!=Lt.end() and itr++
Print *itr
Stop ตัวอย่าง
#include <iostream>
#include<list>
using namespace std;
int main() {
list<int> Lt = { 3,4,5 };
auto itr = Lt.emplace(Lt.begin(),7);
Lt.emplace(itr,6);
cout << "The List is: ";
for (itr = Lt.begin(); itr != Lt.end(); itr++)
cout << *itr << " ";
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
The List is: 6 7 3 4 5