Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชัน list emplace() ใน C ++ STL


กำหนดให้แสดงการทำงานของ 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