ไลบรารี C ++ - <list>
บทนำ
รายการเป็นคอนเทนเนอร์ลำดับที่นิยมใช้ คอนเทนเนอร์เป็นวัตถุที่เก็บข้อมูลประเภทเดียวกัน คอนเทนเนอร์รายการถูกนำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่าดังนั้นจึงให้การเข้าถึงข้อมูลตามลำดับแบบสองทิศทาง
รายการไม่ได้ให้การเข้าถึงแบบสุ่มอย่างรวดเร็ว แต่รองรับการเข้าถึงตามลำดับในทั้งสองทิศทางเท่านั้น รายการช่วยให้สามารถแทรกและลบได้ทุกที่ภายในลำดับเวลาคงที่
องค์ประกอบของรายการสามารถกระจัดกระจายไปตามหน่วยความจำต่างๆ คอนเทนเนอร์เก็บข้อมูลที่จำเป็นเพื่อให้สามารถเข้าถึงข้อมูลได้ตามลำดับ รายการสามารถย่อหรือขยายได้ตามต้องการจากปลายทั้งสองด้านในเวลาดำเนินการ ข้อกำหนดในการจัดเก็บจะถูกเติมเต็มโดยอัตโนมัติโดยตัวจัดสรรภายใน
รายการขนาดศูนย์ก็ใช้ได้เช่นกัน ในกรณีนั้น list.begin () และ list.end () ชี้ไปที่ตำแหน่งเดียวกัน แต่พฤติกรรมของการเรียก front () หรือ back () นั้นไม่ได้กำหนดไว้
คำจำกัดความ
ด้านล่างนี้คือคำจำกัดความของ std :: list จากไฟล์ส่วนหัว <list>
template < class T, class Alloc = allocator<T> > class list;
พารามิเตอร์
T - ประเภทขององค์ประกอบที่มีอยู่
T อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด
Alloc - ประเภทของวัตถุผู้จัดสรร
โดยค่าเริ่มต้นเทมเพลตคลาสตัวจัดสรรจะถูกใช้ซึ่งกำหนดรูปแบบการจัดสรรหน่วยความจำที่ง่ายที่สุดและไม่ขึ้นกับค่า
ประเภทสมาชิก
ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก
ซีเนียร์ | ประเภทสมาชิก | คำจำกัดความ |
---|---|---|
1 | value_type | T (พารามิเตอร์แรกของเทมเพลต) |
2 | จัดสรร _type | Alloc (พารามิเตอร์ที่สองของเทมเพลต) |
3 | เอกสารอ้างอิง | value_type & |
4 | const_reference | const value_type & |
5 | ตัวชี้ | value_type * |
6 | const_pointer | const value_type * |
7 | iterator | ตัววนซ้ำการเข้าถึงโดยสุ่มไปยัง value_type |
8 | const_iterator | ตัววนซ้ำการเข้าถึงโดยสุ่มไปยัง const value_type |
9 | reverse_iterator | std :: reverse_iterator <iterator> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | different_type | ptrdiff_t |
ฟังก์ชั่นจาก <list>
ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <list>
ตัวสร้าง
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | list :: list ตัว
สร้างเริ่มต้น สร้างรายการว่างที่มีองค์ประกอบเป็นศูนย์ |
2 | รายการ :: ตัว สร้างการเติมรายการ
สร้างรายการใหม่กับnองค์ประกอบและกำหนดValกับองค์ประกอบของแต่ละรายการ |
3 | รายการ :: ตัว สร้างการเติมรายการ
สร้างรายการใหม่ด้วยองค์ประกอบnและกำหนดค่าเป็นศูนย์ให้กับแต่ละองค์ประกอบของรายการ |
4 | รายการ :: ตัว สร้างช่วงรายการ
โครงสร้างรายการที่มีองค์ประกอบเป็นจำนวนมากในช่วงแรกของการที่ผ่านมา |
5 | list :: list copy constructor
สร้างรายการพร้อมสำเนาของแต่ละองค์ประกอบที่มีอยู่ในรายการที่มีอยู่ |
6 | list :: list move constructor
สร้างรายการที่มีเนื้อหาอื่น ๆโดยใช้ความหมายการย้าย |
7 | list :: list initializer list constructor สร้างรายการที่มีเนื้อหาอื่น ๆโดยใช้ความหมายการย้าย |
Destructor
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | รายการ :: ~ รายการ
ทำลายวัตถุในรายการโดยการยกเลิกการจัดสรรหน่วยความจำ |
ฟังก์ชั่นสมาชิก
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | รายการ :: กำหนด เวอร์ชันของช่วง กำหนดค่าใหม่ให้กับรายการโดยแทนที่ค่าเก่า |
2 | รายการ :: กำหนด รุ่นเติม กำหนดค่าใหม่ให้กับรายการโดยแทนที่ค่าเก่า |
3 | list :: กำหนด เวอร์ชันรายการ initializer กำหนดค่าใหม่ให้กับรายการโดยแทนที่ค่าเก่า |
4 | รายการ :: กลับ
ส่งกลับการอ้างอิงถึงองค์ประกอบสุดท้ายของรายการ |
5 | รายการ :: เริ่มต้น
ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มซึ่งชี้ไปที่องค์ประกอบแรกของรายการ |
6 | รายการ :: cbegin
ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มคงที่ซึ่งชี้ไปที่จุดเริ่มต้นของรายการ |
7 | รายการ :: cend
ส่งคืนตัววนซ้ำการเข้าถึงแบบสุ่มคงที่ซึ่งชี้ไปที่ส่วนท้ายของรายการ |
8 | รายการ :: ชัดเจน
ทำลายรายการโดยลบองค์ประกอบทั้งหมดออกจากรายการและกำหนดขนาดของรายการเป็นศูนย์ |
9 | รายการ :: crbegin
ส่งคืนตัววนซ้ำแบบย้อนกลับคงที่ซึ่งชี้ไปยังองค์ประกอบสุดท้ายของรายการ |
10 | รายการ :: crend
ส่งกลับค่าตัววนซ้ำแบบย้อนกลับคงที่ซึ่งชี้ไปที่องค์ประกอบทางทฤษฎีที่อยู่ก่อนองค์ประกอบแรกในรายการ |
11 | รายการ :: emplace
ขยายรายการโดยการแทรกองค์ประกอบใหม่ในตำแหน่งที่กำหนด |
12 | รายการ :: emplace_back
แทรกองค์ประกอบใหม่ที่ส่วนท้ายของรายการและเพิ่มขนาดของรายการทีละรายการ |
13 | รายการ :: emplace_front
แทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการและเพิ่มขนาดของรายการทีละรายการ |
14 | รายการ :: ว่างเปล่า
ทดสอบว่ารายการว่างหรือไม่ |
15 | รายการ :: จบ
ส่งคืนตัววนซ้ำการเข้าถึงโดยสุ่มซึ่งชี้ไปยังองค์ประกอบสุดท้ายของรายการ |
16 | รายการ :: ลบตำแหน่งรุ่น ลบองค์ประกอบเดียวออกจากรายการ |
17 | รายการ :: ลบเวอร์ชันช่วง ลบช่วงขององค์ประกอบออกจากรายการ |
18 | รายการ :: ด้านหน้า
ส่งกลับการอ้างอิงถึงองค์ประกอบแรกของรายการ |
19 | รายการ :: get_allocator
ส่งคืนตัวจัดสรรที่เกี่ยวข้องกับรายการ |
20 | รายการ :: แทรก เวอร์ชันองค์ประกอบเดียว ขยายตัววนซ้ำโดยการแทรกองค์ประกอบใหม่ที่ตำแหน่งในรายการ |
21 | รายการ :: ใส่ รุ่นเติม ขยายรายการโดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
22 | รายการ :: แทรก ช่วงเวอร์ชัน ขยายรายการโดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
23 | รายการ :: แทรก รุ่นย้าย ขยายรายการโดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
24 | list :: แทรก เวอร์ชันรายการ initializer ขยายรายการโดยการแทรกองค์ประกอบใหม่ในคอนเทนเนอร์ |
25 | รายการ :: max_size
ส่งคืนจำนวนองค์ประกอบสูงสุดที่สามารถถือได้ตามรายการ |
26 | รายการ :: ผสาน
รวมรายการที่เรียงลำดับสองรายการเข้าด้วยกัน |
27 | รายการ :: รวม ฟังก์ชันเปรียบเทียบ รวมรายการที่เรียงลำดับสองรายการเข้าด้วยกัน |
28 | รายการ :: ผสาน ย้ายเวอร์ชัน รวมรายการที่เรียงลำดับสองรายการเข้าด้วยกันโดยใช้ย้ายความหมาย |
29 | รายการ :: ผสาน เปรียบเทียบฟังก์ชันการย้ายเวอร์ชัน รวมรายการที่เรียงลำดับสองรายการเข้าด้วยกันโดยใช้ย้ายความหมาย |
30 | list :: operator = copy version กำหนดเนื้อหาใหม่ให้กับรายการโดยแทนที่เนื้อหาเก่า |
31 | list :: operator = ย้ายเวอร์ชัน กำหนดเนื้อหาใหม่ให้กับรายการโดยแทนที่เนื้อหาเก่า |
32 | list :: operator = เวอร์ชันรายการ initializer กำหนดเนื้อหาใหม่ให้กับรายการโดยแทนที่เนื้อหาเก่า |
33 | รายการ :: pop_back
ลบองค์ประกอบสุดท้ายออกจากรายการ |
34 | รายการ :: pop_front
ลบองค์ประกอบแรกออกจากรายการ |
35 | รายการ :: push_back
แทรกองค์ประกอบใหม่ที่ท้ายรายการ |
36 | list :: push_back รุ่นย้าย แทรกองค์ประกอบใหม่ที่ท้ายรายการ |
37 | รายการ :: push_front
แทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการ |
38 | list :: รุ่นpush_front move แทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของรายการ |
39 | รายการ :: rbegin
ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปยังองค์ประกอบสุดท้ายของรายการ |
40 | รายการ :: ลบ
ลบองค์ประกอบออกจากรายการที่ตรงกับค่า |
41 | รายการ :: remove_if
ลบองค์ประกอบออกจากรายการที่ตรงตามเงื่อนไข |
42 | รายการ :: rend
ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่จุดสิ้นสุดย้อนกลับของรายการ |
43 | รายการ :: ปรับขนาด
เปลี่ยนขนาดของรายการ |
44 | รายการ :: ปรับขนาด เวอร์ชันค่า เปลี่ยนขนาดของรายการ |
45 | รายการ :: ย้อนกลับ
กลับลำดับขององค์ประกอบที่มีอยู่ในรายการ |
46 | รายการ :: ขนาด
ส่งคืนจำนวนองค์ประกอบที่มีอยู่ในรายการ |
47 | รายการ :: เรียงลำดับ
จัดเรียงองค์ประกอบของรายการ |
48 | รายการ :: เรียงลำดับ เปรียบเทียบฟังก์ชัน จัดเรียงองค์ประกอบของรายการ |
49 | รายการ :: ประกบ
ถ่ายโอนองค์ประกอบทั้งหมดจากรายการไปยัง * this |
50 | รายการ :: ประกบ องค์ประกอบเดียว บริการรถรับส่งเป็นองค์ประกอบที่ชี้ไปตาม iterator ฉันจากรายการxเข้า* นี้ |
51 | รายการ :: รุ่นการต่อรอยต่อ ถ่ายโอนองค์ประกอบทั้งหมดจากรายการxไปยัง*โดยใช้ย้ายความหมาย |
52 | รายการ :: เวอร์ชันช่วงต่อรอย
โอนองค์ประกอบในช่วงแรกจะมีอายุการใช้งานจากxไป* นี้ |
53 | รายการ :: ประกบ องค์ประกอบเดียวรุ่นย้าย ถ่ายโอนองค์ประกอบที่ชี้ไปโดย iterator iจากรายการxเป็น*โดยใช้ย้ายความหมาย |
54 | รายการ :: ช่วงต่อและย้ายเวอร์ชัน ถ่ายโอนองค์ประกอบในช่วงแรกถึงสุดท้ายจากxถึง*โดยใช้ย้ายความหมาย |
55 | รายการ :: แลกเปลี่ยน
แลกเปลี่ยนเนื้อหาของรายการที่มีเนื้อหาของรายการอีกx |
56 | รายการ :: ไม่ซ้ำกัน
ลบองค์ประกอบที่ซ้ำกันทั้งหมดออกจากรายการ |
57 | รายการ :: ไม่ซ้ำกัน
ลบองค์ประกอบที่ซ้ำกันทั้งหมดออกจากรายการ |
ฟังก์ชันที่ไม่มีสมาชิกมากเกินไป
ซีเนียร์ | วิธีการและคำอธิบาย |
---|---|
1 | ตัวดำเนินการ ==
ทดสอบว่าสองรายการเท่ากันหรือไม่ |
2 | ตัวดำเนินการ! =
ทดสอบว่าสองรายการเท่ากันหรือไม่ |
3 | ตัวดำเนินการ <
ทดสอบว่ารายการแรกน้อยกว่ารายการอื่นหรือไม่ |
4 | ตัวดำเนินการ <=
ทดสอบว่ารายการแรกน้อยกว่าหรือเท่ากับรายการอื่นหรือไม่ |
5 | ตัวดำเนินการ>
ทดสอบว่ารายการแรกมากกว่ารายการอื่นหรือไม่ |
6 | ตัวดำเนินการ> =
ทดสอบว่ารายการแรกมากกว่าหรือเท่ากับรายการอื่นหรือไม่ |
7 | แลกเปลี่ยน
แลกเปลี่ยนเนื้อหาของสองรายการ |