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

ฟังก์ชัน assign() ของ forward_list ใน C++ STL

บทนำ

งานนี้แสดงการทำงานของ forward_list::assign() ใน C++

forward_list เก็บลิงก์เฉพาะอิลิเมนต์ถัดไป วนลูปได้เฉพาะทิศทางหน้า

forward_list::assign() เป็นส่วนหนึ่งของ C++ STL ใช้แทรกอิลิเมนต์เข้าไปใน forward list หากลิสต์มีข้อมูลอยู่แล้ว จะถูกแทนที่ด้วยข้อมูลใหม่

ต้อง include <forward_list>

Syntax

มี 3 รูปแบบ syntax สำหรับวิธีการต่างกัน:

  • Forward_list_name.assign(initializer_list);
  • Forward_list_name.assign(iterator itr1, iterator itr2);
  • Forward_list_name.assign(count, value);

Parameters

  • Initializer_list - ลิสต์ได้ค่าตามลำดับที่ส่งเข้าไป
  • Iterator - ลิสต์ได้ค่าระหว่าง itr1 ถึง itr2 (รวม itr1 ไม่รวม itr2)
  • Count และ Value - count = จำนวนอิลิเมนต์, value = ค่าที่จะกำหนดให้ทุกอิลิเมนต์

Return Value

ไม่คืนค่า

ตัวอย่าง

Input: assign(5, 1)
Output: 1 1 1 1 1

คำอธิบาย - สร้าง forward list Lt แล้ว assign(5, 1) → 5 อิลิเมนต์ ค่า 1 ทุกตัว

แนวทางในโปรแกรม

  • สร้าง forward_list 3 ตัว: Lt1, Lt2, Lt3
  • assign() ให้ Lt1 ด้วย initializer list
  • assign() ให้ Lt2 ด้วย count และ value
  • assign() ให้ Lt3 ด้วย iterator ชี้ Lt1.begin() ถึง Lt1.end()

อัลกอริทึม

Start
Step 1 → In main()
    Declare forward_lists<int> Lt1, Lt2, Lt3
    Call Lt1.assign(initializer list)
    Call Lt2.assign(count, value)
    Call Lt3.assign(Lt1.begin(), Lt1.end())
Stop

ตัวอย่างโค้ด

#include <forward_list>
#include <iostream>
using namespace std;

int main() {
    forward_list<int> Lt1;
    forward_list<int> Lt2;
    forward_list<int> Lt3;
    
    // กำหนดค่าให้ Lt1
    Lt1.assign({4, 9, 7, 8});
    // กำหนดค่าให้ Lt2
    Lt2.assign(3, 6);
    // คัดลอกจาก Lt1 ให้ Lt3
    Lt3.assign(Lt1.begin(), Lt1.end());
    
    // แสดงลิสต์
    cout << "Lt1: ";
    for (int& D : Lt1) cout << D << " ";
    cout << endl;
    
    cout << "Lt2: ";
    for (int& D : Lt2) cout << D << " ";
    cout << endl;
    
    cout << "Lt3: ";
    for (int& D : Lt3) cout << D << " ";
    return 0;
}

ผลลัพธ์

Lt1: 4 9 7 8
Lt2: 6 6 6
Lt3: 4 9 7 8

คำอธิบาย

Lt1: ใช้ initializer list ได้ 4 ค่า

Lt2: ใช้ count=3, value=6 ได้ 3 ตัวค่า 6

Lt3: คัดลอกจาก Lt1 ทั้งหมด ได้ค่าเหมือน Lt1