ไลบรารี 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 |