กำหนดให้เป็นหน้าที่แสดงการทำงานของฟังก์ชัน forward_list assign() ใน C++
forward_list จะรักษาการเชื่อมโยงกับองค์ประกอบถัดไปเท่านั้น ซึ่งแตกต่างจากรายการปกติที่เชื่อมโยงกับองค์ประกอบถัดไปเช่นเดียวกับองค์ประกอบก่อนหน้า ซึ่งช่วยให้วนซ้ำในทิศทางไปข้างหน้าและย้อนกลับ แต่ forward_list วนซ้ำได้เฉพาะในทิศทางไปข้างหน้าเท่านั้น
ฟังก์ชัน forward_list::assign() เป็นส่วนหนึ่งของไลบรารีเทมเพลตมาตรฐาน C++ มันถูกใช้เพื่อแทรกองค์ประกอบภายในรายการส่งต่อ และหากรายการมีองค์ประกอบบางอย่างอยู่แล้ว พวกมันจะถูกแทนที่ด้วยองค์ประกอบใหม่ที่เพิ่มโดยผู้ใช้
ไวยากรณ์
ไวยากรณ์มี 3 ประเภทสำหรับฟังก์ชันนี้ แต่ละวิธีด้วยวิธีการที่แตกต่างกัน -
- Forward_list_name.assign(initializer_list);
- Forward_list_name.assign(iterator itr1 , iterator itr2);
- Forward_list_name.assign(จำนวน ค่า);
พารามิเตอร์
Initializer_list − ในกรณีแรกรายการส่งต่อจะได้รับค่าที่ส่งผ่านเข้าไปเป็นรายการเริ่มต้นในลำดับเดียวกันทุกประการ
ตัววนซ้ำ − ในกรณีที่สอง รายการส่งต่อจะได้รับค่าที่รวมอยู่ระหว่างค่าที่ itr1 และ itr2 ชี้โดย itr2 รวมถึงค่าที่ชี้โดย itr1 แต่ไม่ใช่โดย itr2
จำนวนและมูลค่า − ในกรณีที่สาม พารามิเตอร์ “นับ” หมายถึงจำนวนขององค์ประกอบที่จะแทรกเข้าไปในรายการไปข้างหน้า และ “ค่า” หมายถึงค่าที่จะต้องกำหนดให้กับแต่ละองค์ประกอบ
ตำแหน่ง ที่แสดงถึงตำแหน่งที่จะต้องวางองค์ประกอบใหม่ และค่า ที่แสดงถึงองค์ประกอบที่จะต้องแทรกเข้าไปในรายการ
ผลตอบแทนที่ได้รับ
ฟังก์ชันนี้ไม่คืนค่าใดๆ
ตัวอย่าง
Input: assign(5,1) Output: 1 1 1 1 1
คำอธิบาย −
ที่นี่เราสร้างรายการส่งต่อ "Lt" ของประเภท int จากนั้นเราใช้ฟังก์ชัน assign เพื่อกำหนดค่า () ให้กับรายการโดยใช้พารามิเตอร์ count และ คุณค่า .
ที่กำหนดรายการ “Lt” 5 องค์ประกอบแต่ละรายการมีค่า 1 ซึ่งสร้างผลลัพธ์ 1 1 1 1 1
แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้ −
- ขั้นแรกให้สร้างรายการส่งต่อประเภท int สามรายการ ให้เราพูดว่า “Lt1”, “Lt2” และ “Lt3”
- จากนั้นใช้ฟังก์ชัน assign() เพื่อกำหนดองค์ประกอบให้กับ Lt1 โดยผ่านรายการตัวเริ่มต้นเป็นพารามิเตอร์
- จากนั้นใช้ฟังก์ชัน assign เพื่อกำหนดองค์ประกอบให้กับ Lt2 การนับและค่าที่ส่งผ่านเป็นพารามิเตอร์
- จากนั้นใช้ฟังก์ชัน assign เพื่อกำหนดองค์ประกอบให้กับ Lt3 โดยส่งตัววนซ้ำสองตัวเป็นพารามิเตอร์ ให้เราถือว่าชี้ไปที่ตำแหน่งเริ่มต้นและตำแหน่งสุดท้ายของรายการ Lt1 ตามลำดับ
อัลกอริทึม
Start Step 1->In function main() Declare forward_lists<int> Lt1,Lt2,Lt3 Call Lt1.assign(initialize list) Call Lt2.assign(count,value) Call Lt3.assign(L1.begin(),Lt2.end()) Stop
ตัวอย่าง
#include <forward_list> #include <iostream> using namespace std; int main() { forward_list<int> Lt1; forward_list<int> Lt2; forward_list<int> Lt3; //assigning elements to Lt1 Lt1.assign({4,9,7,8}); //assigning elements to Lt2 Lt2.assign(3,6); //assigning elements to Lt2 Lt3.assign(Lt1.begin(),Lt1.end()); // Display the lists cout << "Lt1: "; for (int& D : Lt1) cout << D << " "; cout << endl; // Display Lt2 cout << "Lt2: "; for (int& D : Lt2) cout << D << " "; // Display Lt3 cout << "Lt3: "; for (int& D : Lt3) cout << D << " "; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Lt1: 4 9 7 8 Lt2: 6 6 6 Lt3: 4 9 7 8