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

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


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