กำหนดให้เป็นหน้าที่แสดงการทำงานของฟังก์ชัน 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