กำหนดให้เป็นงานที่จะแสดงการทำงานของฟังก์ชัน assign() ใน C++
ฟังก์ชัน list::assign() เป็นส่วนหนึ่งของไลบรารีเทมเพลตมาตรฐาน C++ ใช้เพื่อกำหนดค่าให้กับรายการและเพื่อคัดลอกค่าจากรายการหนึ่งไปยังอีกรายการหนึ่ง
ควรรวมไฟล์ส่วนหัวเพื่อเรียกใช้ฟังก์ชันนี้
ไวยากรณ์
ไวยากรณ์สำหรับการกำหนดค่าใหม่มีดังนี้ −
List_Name.assign(size,value)
ไวยากรณ์
ไวยากรณ์สำหรับการคัดลอกค่าจากรายการหนึ่งไปยังอีกรายการหนึ่งมีดังต่อไปนี้ -
First_List.assign(Second_List.begin(),Second_list.end())
พารามิเตอร์
ฟังก์ชันใช้พารามิเตอร์สองตัว -
อันดับแรกคือขนาด ซึ่งแทนขนาดของรายการ และอันที่สองคือค่า ซึ่งแสดงถึงค่าข้อมูลที่จะจัดเก็บไว้ในรายการ
ผลตอบแทนที่ได้รับ
ฟังก์ชันนี้ไม่มีค่าส่งคืน
ตัวอย่าง
Input: Lt.assign(3,10) Output: The size of list Lt is 3. The elements of the list Lt are 10 10 10.
คำอธิบาย −
ตัวอย่างต่อไปนี้แสดงวิธีที่เราสามารถกำหนดขนาดและค่าของรายการโดยใช้ฟังก์ชัน assign() ค่าแรกที่เราจะส่งต่อภายในฟังก์ชันรายการจะกลายเป็นขนาดของรายการ ในกรณีนี้ จะเป็น 3 และองค์ประกอบที่สองคือค่าที่กำหนดให้กับแต่ละตำแหน่งของรายการ และนี่คือ 10
ตัวอย่าง
Input: int array[5] = { 1, 2, 3, 4 } Lt.assign(array,array+3) Output: The size of list Lt is 3. The elements of the list Lt are 1 2 3.
คำอธิบาย −
ตัวอย่างต่อไปนี้แสดงให้เห็นว่าเราสามารถกำหนดค่าให้กับรายการโดยใช้อาร์เรย์ได้อย่างไร จำนวนองค์ประกอบทั้งหมดที่เราจะกำหนดให้กับรายการจะกลายเป็นขนาดของรายการ
ผู้ใช้ต้องเพียงแค่ส่งชื่อของอาร์เรย์เป็นอาร์กิวเมนต์แรกภายในฟังก์ชัน assign() และอาร์กิวเมนต์ที่สองควรเป็นชื่อของอาร์เรย์ ตามด้วยเครื่องหมาย "+" ตามด้วยจำนวนองค์ประกอบที่ผู้ใช้ต้องการ มอบหมายให้กับรายการ
ในกรณีข้างต้น เราได้เขียน 3 ดังนั้นองค์ประกอบสามตัวแรกของอาร์เรย์จะถูกกำหนดให้กับรายการ
หากเราเขียนตัวเลขที่มากกว่าจำนวนองค์ประกอบที่มีอยู่ในอาร์เรย์ สมมติว่า 6 โปรแกรมจะไม่แสดงข้อผิดพลาดใด ๆ แทนขนาดของรายการจะกลายเป็น 6 และตำแหน่งพิเศษในรายการจะถูกกำหนด โดยมีค่าเป็นศูนย์
แนวทางที่ใช้ในโปรแกรมด้านล่างดังนี้ −
- ขั้นแรกให้สร้างฟังก์ชัน ShowList(list
L) ที่จะแสดงองค์ประกอบของรายการ - สร้างตัววนซ้ำ สมมติว่า itr จะมีองค์ประกอบเริ่มต้นของรายการที่จะแสดง
- ทำให้ลูปทำงานจนกว่า itr จะไปถึงองค์ประกอบสุดท้ายของรายการ
- จากนั้นในฟังก์ชัน main() ให้สร้างสามรายการโดยใช้ list
สมมติว่า L1, L2 ad L3 ยอมรับค่าของประเภท int แล้วสร้างอาร์เรย์ประเภท int สมมติว่า arr[] และกำหนด ค่าบางอย่าง - จากนั้นใช้ฟังก์ชัน assign() เพื่อกำหนดขนาดและค่าบางค่าให้กับรายการ L1 แล้วส่งรายการ L1 ไปที่ฟังก์ชัน ShowDisplay()
- จากนั้นใช้ฟังก์ชัน assign() เพื่อคัดลอกองค์ประกอบของรายการ L1 ไปที่ L2 และส่งรายการ L2 ไปยังฟังก์ชัน ShowList() ด้วย
- จากนั้นใช้ฟังก์ชัน assign() เพื่อคัดลอกองค์ประกอบของอาร์เรย์ arr[] ไปยังรายการ L3 และส่งรายการ L3 ไปยังฟังก์ชัน DisplayList()
อัลกอริทึม
Start Step 1-> Declare function DisplayList(list<int> L) for showing list elements Declare iterator itr Loop For itr=L.begin() and itr!=L.end() and itr++ Print *itr End Step 2-> In function main() Declare lists L1,L2,L3 Initialize array arr[] Call L1.assign(size,value) Print L1.size(); Call function DisplayList(L1) to display L1 Call L2.assign(L1.begin(),L1.end()) Print L2.size(); Call function DisplayList(L2) to display L2 Call L3.assign(arr,arr+4) Print L3.size(); Call function DisplayList(L3) to display L3 Stop
ตัวอย่าง
#include<iostream> #include<list> using namespace std; int ShowList(list<int> L) { cout<<"The elements of the list are "; list<int>::iterator itr; for(itr=L.begin(); itr!=L.end(); itr++) { cout<<*itr<<" "; } cout<<"\n"; } int main() { list<int> L1; list<int> L2; list<int> L3; int arr[10] = { 6, 7, 2, 4 }; //assigning size and values to list L1 L1.assign(3,20); cout<<"The size of list L1 is "<<L1.size()<<"\n"; ShowList(L1); //copying the elements of L1 into L3 L2.assign(L1.begin(),L1.end()); cout<<"The size of list is L2 "<<L2.size()<<"\n"; ShowList(L2); //copying the elements of arr[] into list L3 L3.assign(arr,arr+4); cout<<"The size of list is L3 "<<L3.size()<<"\n"; ShowList(L3); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
The size of list L1 is 3 The elements of the list are 20 20 20 The size of list L2 is 3 The elements of the list are 20 20 20 The size of list L3 is 4 The elements of the list are 6 7 2 4
คำอธิบาย
สำหรับรายการ L1 เราให้ขนาดเป็น 3 และค่าเป็น 20 ในฟังก์ชัน assign() ซึ่งสร้างเอาต์พุตข้างต้น
จากนั้นเราคัดลอกองค์ประกอบของรายการ L1 ลงใน L2 นั้นซึ่งทำให้ L2 มีขนาดและค่าเท่ากับ L1 ดังที่เราเห็นในผลลัพธ์
จากนั้นเราใช้ฟังก์ชัน assign เพื่อคัดลอกองค์ประกอบทั้งหมดของอาร์เรย์ arr[] ซึ่งทำให้ขนาดของ L3 เท่ากับ 4 และองค์ประกอบเหมือนกับองค์ประกอบของอาร์เรย์เหมือนกับในเอาต์พุต