ไลบรารี 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 แลกเปลี่ยน

แลกเปลี่ยนเนื้อหาของสองรายการ