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

รายการใน C ++ (4.5)


List เป็นประเภทของคอนเทนเนอร์ที่จัดเก็บข้อมูลตามลำดับและจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกันให้กับองค์ประกอบ ใน C ++ รายการถือเป็นรายการที่เชื่อมโยงแบบทวีคูณซึ่งการแทรกและการลบองค์ประกอบสามารถทำได้จากปลายทั้งสอง ดังนั้นจึงเป็นไปได้ที่จะสำรวจรายการจากปลายทั้งสองข้าง สำหรับการใช้รายการลิงก์เดี่ยว เราใช้รายการส่งต่อที่มีอยู่ใน C++ STL

ข้อดีของการใช้รายการบนเวกเตอร์คือ

รายการจะเร็วขึ้นในการแทรกและลบองค์ประกอบที่มีอยู่ในคอนเทนเนอร์รายการหากตัววนซ้ำอยู่ในตำแหน่งองค์ประกอบที่ถูกต้อง

ข้อเสียของการใช้ List คือ

ในรายการ เป็นการยากที่จะดึงองค์ประกอบที่มีอยู่ในคอนเทนเนอร์โดยตรงผ่านตำแหน่ง เช่น หากเราต้องการดึงองค์ประกอบที่สี่ ก็จะเป็นการยากที่จะข้ามไปยังองค์ประกอบที่สี่โดยตรง แทนตัววนซ้ำจะต้องไปถึงที่นั่นจากตำแหน่งเริ่มต้นหรือจุดสิ้นสุด

หน้าที่ที่เกี่ยวข้องกับรายการคือ

  • Push_front(องค์ประกอบ) - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบที่จุดเริ่มต้นของรายการ

    ไวยากรณ์ -listName.push_front(องค์ประกอบประเภทข้อมูล)

    พารามิเตอร์ - ใช้พารามิเตอร์หนึ่งตัวเป็นค่าที่จะแทรก

    คืนค่า - ไม่มีผลตอบแทน

  • ดันกลับ(องค์ประกอบ) - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบที่ท้ายรายการ

    ไวยากรณ์ - listName.push_back(องค์ประกอบประเภทข้อมูล)

    พารามิเตอร์ - ใช้พารามิเตอร์หนึ่งตัวเป็นค่าที่จะแทรก

    คืนค่า - ไม่มีผลตอบแทน

  • แทรก() - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบในตำแหน่งที่กำหนดในคอนเทนเนอร์รายการ

    ไวยากรณ์ -:listName.insert(ตำแหน่ง ยอดรวม องค์ประกอบ)

    พารามิเตอร์ - ใช้พารามิเตอร์สามตัว -

    • ตำแหน่งที่ต้องแทรกองค์ประกอบ

    • Total ระบุจำนวนองค์ประกอบที่จะแทรกทั้งหมด

    • องค์ประกอบระบุองค์ประกอบที่จะแทรก

  • คืนค่า - ส่งคืนตัววนซ้ำที่ชี้ไปที่จุดเริ่มต้นขององค์ประกอบที่แทรกใหม่

  • Pop_front() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบออกจากจุดเริ่มต้นของรายการ

    ไวยากรณ์ - listName.pop_front()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีผลตอบแทน

  • ด้านหน้า() - ฟังก์ชันนี้ใช้เพื่อดึงองค์ประกอบแรกของรายการ

    ไวยากรณ์ - listName.front()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ฟังก์ชันนี้จะคืนค่าการอ้างอิงโดยตรงไปยังองค์ประกอบแรก

  • Pop_back() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบออกจากจุดสิ้นสุดของรายการ

    ไวยากรณ์ - listName.pop_back()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีผลตอบแทน

  • ย้อนกลับ() - ฟังก์ชันนี้ใช้เพื่อดึงองค์ประกอบสุดท้ายของรายการ

    ไวยากรณ์ - listName.back()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ฟังก์ชันนี้จะคืนค่าการอ้างอิงโดยตรงไปยังองค์ประกอบสุดท้าย

  • ขนาด() - ฟังก์ชันนี้ใช้เพื่อดึงจำนวนองค์ประกอบทั้งหมดในรายการ

    ไวยากรณ์ - listName.size()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบทั้งหมดในรายการ

  • ปรับขนาด() - ฟังก์ชันนี้ใช้เพื่อปรับขนาดจำนวนองค์ประกอบทั้งหมดในรายการ

    ไวยากรณ์ - listName.resize(int resized_number, ค่า (ตัวเลือก))

    พารามิเตอร์ - ใช้พารามิเตอร์สองตัว

    • resized_number - จำนวนที่แน่นอนถึงขนาดของภาชนะที่จะเพิ่มหรือลด

    • ค่า(ตัวเลือก) - เป็นพารามิเตอร์ทางเลือกที่จะเพิ่มค่าที่ระบุต่อท้ายองค์ประกอบ

  • คืนค่า -:ไม่มีค่าส่งคืน

  • Max_size() - ฟังก์ชันนี้ใช้เพื่อดึงจำนวนองค์ประกอบสูงสุดที่รายการสามารถมีได้

    ไวยากรณ์ - listName.max_size()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ฟังก์ชันนี้จะคืนค่าจำนวนองค์ประกอบสูงสุดที่รายการสามารถมีได้

  • ล้าง() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบทั้งหมดออกจากรายการและรีเซ็ตขนาดเป็น 0

    ไวยากรณ์ - listName.max_size()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีผลตอบแทน

  • ลบ(องค์ประกอบ) - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบทั้งหมดที่ตรงกับองค์ประกอบที่ส่งผ่านในพารามิเตอร์

    ไวยากรณ์ - listName.remove(องค์ประกอบ)

    พารามิเตอร์ - ใช้พารามิเตอร์เดียวซึ่งระบุองค์ประกอบที่จะลบออกจากคอนเทนเนอร์รายการ

    คืนค่า - ไม่มีผลตอบแทน

  • Remove_if(ตัวชี้ฟังก์ชัน/ออบเจ็กต์ฟังก์ชัน) - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบทั้งหมดที่ตรงกับองค์ประกอบที่ส่งผ่านในพารามิเตอร์ตามเงื่อนไขที่ส่งผ่านในพารามิเตอร์

    ไวยากรณ์ - listName.remove_if(ตัวชี้ฟังก์ชัน/ออบเจ็กต์ฟังก์ชัน)

    พารามิเตอร์ - ใช้พารามิเตอร์ตัวเดียวเป็นตัวชี้ฟังก์ชันหรืออ็อบเจกต์ฟังก์ชัน

    คืนค่า - คืนค่าเป็นจริงเมื่อองค์ประกอบทั้งหมดถูกลบ

  • ลบ() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบเดียวและหลายองค์ประกอบขึ้นอยู่กับพารามิเตอร์ที่ส่งผ่าน

    ไวยากรณ์ -:iterator listName.erase (ตำแหน่ง iterator) iterator listName.erase (ตัววนซ้ำ First_ele, iterator Last_ele)

    พารามิเตอร์ - ในไวยากรณ์แรก จะใช้ตำแหน่งพารามิเตอร์ซึ่งระบุตำแหน่งที่องค์ประกอบจะถูกลบออกจากคอนเทนเนอร์รายการ ในไวยากรณ์ที่สอง จะใช้องค์ประกอบพารามิเตอร์แรกและองค์ประกอบสุดท้ายซึ่งระบุช่วงที่องค์ประกอบจะถูกลบออก

    คืนค่า - ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบที่ถูกลบล่าสุด

  • ว่างเปล่า() - ฟังก์ชันนี้ใช้ตรวจสอบว่ารายการว่างหรือไม่

    ไวยากรณ์ - listName.empty()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า -

    • คืนค่าจริง - เมื่อรายการว่างเปล่า

    • คืนค่าเท็จ - เมื่อรายการไม่ว่างเปล่า

  • เริ่มต้น() - ฟังก์ชันนี้จะคืนค่าตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกในรายการ

    ไวยากรณ์ - listName.begin()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกในรายการ

  • สิ้นสุด() - ฟังก์ชันนี้จะคืนค่าตัววนซ้ำที่ชี้ไปยังองค์ประกอบสุดท้ายในรายการ

    ไวยากรณ์ - listName.end()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    ผลตอบแทน - ส่งกลับตัววนซ้ำที่ชี้ไปที่องค์ประกอบสุดท้ายในรายการ
    rbegin() - ฟังก์ชันนี้จะส่งคืนตัววนซ้ำย้อนกลับที่ชี้ไปที่องค์ประกอบสุดท้ายในรายการ
    ไวยากรณ์ - listName.rbegin()
    พารามิเตอร์ - ไม่มีพารามิเตอร์
    คืนค่า - ส่งคืนตัววนซ้ำย้อนกลับที่ชี้ไปยังองค์ประกอบสุดท้ายในรายการ

  • rend() - ฟังก์ชันนี้จะคืนค่าตัววนซ้ำย้อนกลับที่ชี้ไปที่องค์ประกอบแรกในรายการ

    ไวยากรณ์ - listName.rend()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ส่งคืนตัววนซ้ำย้อนกลับที่ชี้ไปที่องค์ประกอบแรกในรายการ

  • Cbegin() - ฟังก์ชันนี้ใช้ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มคงที่ซึ่งชี้ไปที่จุดเริ่มต้นของรายการ

    ไวยากรณ์ - listName.cbegin()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    ผลตอบแทน - ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มคงที่ซึ่งชี้ไปที่จุดเริ่มต้นของรายการ

  • Cend() - ฟังก์ชันนี้ใช้ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มคงที่ซึ่งชี้ไปที่จุดสิ้นสุดของรายการ

    ไวยากรณ์ - listName.cend()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มคงที่ซึ่งชี้ไปที่จุดสิ้นสุดของรายการ

  • Crbegin() - ฟังก์ชันนี้ใช้คืนค่าตัววนซ้ำย้อนกลับของการเข้าถึงโดยสุ่มอย่างต่อเนื่องซึ่งชี้ไปที่จุดสิ้นสุดของรายการ

    ไวยากรณ์ - listName.crbegin()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มอย่างต่อเนื่องซึ่งชี้ไปที่จุดสิ้นสุดของรายการ

  • Crend() - ฟังก์ชันนี้ใช้คืนค่าตัววนซ้ำย้อนกลับของการเข้าถึงโดยสุ่มอย่างต่อเนื่องซึ่งชี้ไปที่จุดเริ่มต้นของรายการ

    ไวยากรณ์ - listName.crend()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มอย่างต่อเนื่องซึ่งชี้ไปที่จุดเริ่มต้นของรายการ

  • ย้อนกลับ() - ฟังก์ชันนี้ใช้ย้อนกลับองค์ประกอบทั้งหมดในคอนเทนเนอร์รายการ

    ไวยากรณ์ - listName.reverse()

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีค่าส่งคืน

  • ไม่ซ้ำกัน() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบที่ต่อเนื่องกันที่ซ้ำกันทั้งหมดออกจากรายการ

    ไวยากรณ์ - listName.unique (ภาคแสดงที่ถือว่าค่าสองค่าเหมือนกัน)

    พารามิเตอร์ - ใช้พารามิเตอร์ทางเลือกที่คืนค่า จริง เมื่อองค์ประกอบสองรายการต้องได้รับการพิจารณาว่าเหมือนกัน

    คืนค่า - ไม่มีค่าส่งคืน

  • emplace() - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบใหม่ในตำแหน่งที่กำหนด

    ไวยากรณ์ - listName.emplace(ตำแหน่ง ค่า)

    พารามิเตอร์ - ใช้พารามิเตอร์สองตัว พารามิเตอร์หนึ่งระบุตำแหน่งที่ต้องการแทรกองค์ประกอบ และอีกรายการหนึ่งบอกค่าองค์ประกอบที่ต้องแทรก

    คืนค่า - ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบที่แทรกใหม่

  • Emplace_front() - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการ

    ไวยากรณ์ - listName.emplace_front(องค์ประกอบ)

    พารามิเตอร์ - ใช้พารามิเตอร์หนึ่งตัวที่ระบุค่าที่จะแทรก

    คืนค่า - ไม่มีค่าส่งคืน

  • Emplace_back() - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบใหม่ที่ท้ายรายการ

    ไวยากรณ์ - listName.emplace_back(องค์ประกอบ)

    พารามิเตอร์ - ใช้พารามิเตอร์หนึ่งตัวที่ระบุค่าที่จะแทรก

    คืนค่า - ไม่มีค่าส่งคืน

  • โอเปอเรเตอร์(=) - โอเปอเรเตอร์นี้ใช้เพื่อแทนที่เนื้อหาของรายการหนึ่งโดยอีกรายการหนึ่ง

    ไวยากรณ์ - listName_1 =listName_2

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีค่าส่งคืน

  • สลับ() - ฟังก์ชันนี้ใช้เพื่อสลับเนื้อหาของรายการหนึ่งเป็นรายการประเภทเดียวกันอีกรายการหนึ่ง

    ไวยากรณ์ - listName_1.swap(listName_2)

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีค่าส่งคืน

  • ผสาน() - ฟังก์ชันนี้ใช้เพื่อรวมองค์ประกอบเป็นสองรายการ

    ไวยากรณ์ - listName_1.merge(listName_2)

    พารามิเตอร์ - ไม่มีพารามิเตอร์

    คืนค่า - ไม่มีค่าส่งคืน