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

รายการกำหนด () ฟังก์ชั่นใน C ++ STL


กำหนดให้เป็นงานที่จะแสดงการทำงานของฟังก์ชัน 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 และองค์ประกอบเหมือนกับองค์ประกอบของอาร์เรย์เหมือนกับในเอาต์พุต