ไลบรารี C ++ - <deque>

บทนำ

Deque เป็นตัวย่อของ Double Ended Queเอ่อ. เป็นคอนเทนเนอร์ลำดับที่สามารถเปลี่ยนขนาดรันไทม์ได้ คอนเทนเนอร์เป็นวัตถุที่เก็บข้อมูลประเภทเดียวกัน ลำดับคอนเทนเนอร์จัดเก็บองค์ประกอบตามลำดับเชิงเส้นอย่างเคร่งครัด

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

Deque สามารถย่อหรือขยายได้ตามต้องการจากปลายทั้งสองข้างในเวลาทำงาน ความต้องการจัดเก็บข้อมูลที่เป็นจริงโดยอัตโนมัติโดยการจัดสรรภายใน Deque มีฟังก์ชันที่คล้ายกันเป็นเวกเตอร์ แต่ให้วิธีที่มีประสิทธิภาพในการแทรกและลบข้อมูลจากจุดสิ้นสุดใด ๆ

deques ขนาดศูนย์ก็ใช้ได้เช่นกัน ในกรณีนั้น deque.begin () และ deque.end () ชี้ไปที่ตำแหน่งเดียวกัน แต่พฤติกรรมของการเรียก front () หรือ back () นั้นไม่ได้กำหนดไว้

คำจำกัดความ

ด้านล่างนี้คือคำจำกัดความของ std :: deque จากไฟล์ส่วนหัว <deque>

template < class T, class Alloc = allocator<T> > class deque;

พารามิเตอร์

  • 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

ฟังก์ชั่นจาก <deque>

ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <deque>

ตัวสร้าง

ซีเนียร์ วิธีการและคำอธิบาย
1 deque :: deque ตัว สร้างเริ่มต้น

สร้าง deque ว่างที่มีองค์ประกอบศูนย์

2 deque :: ตัว สร้างเติมdeque

สร้าง deque ใหม่ด้วยnองค์ประกอบและกำหนดvalให้กับแต่ละองค์ประกอบของ deque

3 deque :: ตัว สร้างช่วงdeque

โครงสร้าง deque ที่มีองค์ประกอบเป็นจำนวนมากในช่วงแรกของการที่ผ่านมา

4 deque :: ตัว สร้างสำเนาdeque

สร้าง deque พร้อมสำเนาของแต่ละองค์ประกอบที่มีอยู่ในคอนเทนเนอร์ที่มีอยู่

5 deque :: ตัวสร้างการย้ายdeque

สร้าง deque ด้วยเนื้อหาของสิ่งอื่น ๆ โดยใช้ความหมายการย้าย

6 deque :: deque initializer list constructor

สร้าง deque จากรายการเริ่มต้น

Destructor

ซีเนียร์ วิธีการและคำอธิบาย
1 deque :: ~ deque

ทำลายวัตถุ deque โดยการจัดสรรหน่วยความจำ

ฟังก์ชั่นสมาชิก

ซีเนียร์ วิธีการและคำอธิบาย
1 deque :: กำหนด เวอร์ชันของช่วง

กำหนดค่าใหม่ให้กับองค์ประกอบ deque โดยแทนที่ค่าเก่า

2 deque :: กำหนด เวอร์ชันเติม

กำหนดค่าใหม่ให้กับองค์ประกอบ deque โดยแทนที่ค่าเก่า

3 deque :: กำหนด เวอร์ชันรายการ initializer

กำหนดค่าใหม่ให้กับองค์ประกอบ deque โดยแทนที่ค่าเก่า

4 deque :: ที่

ส่งกลับการอ้างอิงถึงองค์ประกอบที่อยู่ที่ตำแหน่งnใน deque

5 deque :: กลับ

ส่งกลับการอ้างอิงถึงองค์ประกอบสุดท้ายของ deque

6 deque :: เริ่มต้น

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

7 deque :: cbegin

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

8 deque :: cend

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

9 deque :: ชัดเจน

ทำลาย deque โดยการลบองค์ประกอบทั้งหมดออกจาก deque และกำหนดขนาดของ deque เป็นศูนย์

10 deque :: crbegin

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

11 deque :: crend

ส่งคืนตัววนซ้ำแบบย้อนกลับคงที่ซึ่งชี้ไปที่จุดสิ้นสุดด้านหลังของ deque

12 deque :: emplace

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในตำแหน่ง

13 deque :: emplace_back

แทรกองค์ประกอบใหม่ที่ส่วนท้ายของ deque

14 deque :: emplace_front

แทรกองค์ประกอบใหม่ที่จุดเริ่มต้นของ deque

15 deque :: ว่างเปล่า

ทดสอบว่า deque ว่างเปล่าหรือไม่

16 deque :: จบ

ส่งคืนตัววนซ้ำซึ่งชี้ไปยังองค์ประกอบที่ผ่านจุดสิ้นสุดในคอนเทนเนอร์ deque

17 deque :: ลบตำแหน่งรุ่น

ลบองค์ประกอบเดียวออกจาก deque

18 deque :: ลบเวอร์ชันช่วง

ลบองค์ประกอบเดียวออกจาก deque

19 deque :: ด้านหน้า

ส่งกลับการอ้างอิงถึงองค์ประกอบแรกของ deque

20 deque :: get_allocator

ส่งคืนตัวจัดสรรที่เกี่ยวข้องกับ deque

21 deque :: แทรก เวอร์ชันองค์ประกอบเดียว

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ที่ตำแหน่ง

22 deque :: ใส่ เวอร์ชันเติม

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในคอนเทนเนอร์

23 deque :: แทรก เวอร์ชันช่วง

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในคอนเทนเนอร์

24 deque :: แทรก รุ่นย้าย

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในคอนเทนเนอร์

25 deque :: แทรก เวอร์ชันรายการ initializer

ขยายคอนเทนเนอร์โดยการใส่องค์ประกอบใหม่ในคอนเทนเนอร์

26 deque :: max_size

ส่งคืนจำนวนสูงสุดขององค์ประกอบที่สามารถถือได้โดย deque

27 deque :: operator = copy version

กำหนดเนื้อหาใหม่ให้กับ deque โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น

28 deque :: operator = ย้ายเวอร์ชัน

กำหนดเนื้อหาใหม่ให้กับ deque โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น

29 deque :: operator = เวอร์ชันรายการ initializer

กำหนดเนื้อหาใหม่ให้กับ deque โดยแทนที่เนื้อหาเก่าและปรับเปลี่ยนขนาดหากจำเป็น

30 deque :: ตัวดำเนินการ []

ผลตอบแทนอ้างอิงกับองค์ประกอบปัจจุบันที่สถานที่n

31 deque :: pop_back

ลบองค์ประกอบสุดท้ายออกจาก deque และลดขนาดของ deque ทีละรายการ

32 deque :: pop_front

ลบองค์ประกอบแรกออกจาก deque และลดขนาดของ deque ทีละรายการ

33 deque :: push_back

แทรกองค์ประกอบใหม่ที่ส่วนท้ายของ deque และเพิ่มขนาดของ deque ทีละรายการ

34 deque :: push_back รุ่นย้าย

แทรกองค์ประกอบใหม่ที่ส่วนท้ายของ deque และเพิ่มขนาดของ deque ทีละรายการ

35 deque :: push_front

แทรกองค์ประกอบใหม่ที่ด้านหน้าของ deque และเพิ่มขนาดของ deque ทีละรายการ

36 deque :: push_front รุ่นย้าย

แทรกองค์ประกอบใหม่ที่ด้านหน้าของ deque และเพิ่มขนาดของ deque ทีละรายการ

37 deque :: rbegin

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

38 deque :: rend

ส่งคืนตัววนซ้ำแบบย้อนกลับซึ่งชี้ไปที่ปลายด้านหลังของ deque

39 deque :: ปรับขนาด

เปลี่ยนขนาดของ deque

40 deque :: ปรับขนาด เวอร์ชันค่า

เปลี่ยนขนาดของ deque

41 deque :: shrink_to_fit

ขอให้คอนเทนเนอร์ลดความจุให้พอดีกับขนาด

42 deque :: ขนาด

ส่งคืนจำนวนองค์ประกอบที่มีอยู่ใน deque

43 deque :: แลกเปลี่ยน

เปลี่ยนเนื้อหาของ deque ด้วยเนื้อหาของ deque xอื่น

ฟังก์ชันที่ไม่มีสมาชิกมากเกินไป

ซีเนียร์ วิธีการและคำอธิบาย
1 ตัวดำเนินการ ==

ทดสอบว่าสอง deques เท่ากันหรือไม่

2 ตัวดำเนินการ! =

ทดสอบว่าสอง deques เท่ากันหรือไม่

3 ตัวดำเนินการ <

ทดสอบว่า deque แรกน้อยกว่าอื่นหรือไม่

4 ตัวดำเนินการ <=

ทดสอบว่า deque แรกน้อยกว่าหรือเท่ากับอื่น ๆ หรือไม่

5 ตัวดำเนินการ>

ทดสอบว่า deque แรกมากกว่าค่าอื่นหรือไม่

6 ตัวดำเนินการ> =

ทดสอบว่า deque แรกมากกว่าหรือเท่ากับอื่น ๆ หรือไม่

7 แลกเปลี่ยน

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