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)
พารามิเตอร์ - ไม่มีพารามิเตอร์
คืนค่า - ไม่มีค่าส่งคืน