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

ความรู้เบื้องต้นเกี่ยวกับคิว

Queue เป็นโครงสร้างข้อมูลที่ออกแบบมาเพื่อทำงานในบริบท FIFO (First in First out) ในองค์ประกอบคิวแทรกจากด้านหลังสิ้นและได้รับการลบออกจากหน้าท้าย

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

คำจำกัดความ

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

template <class T, class Container = deque<T> > class queue;

พารามิเตอร์

  • T - ประเภทขององค์ประกอบที่มีอยู่

    T อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด

  • Container - ประเภทของวัตถุคอนเทนเนอร์ที่สำคัญ

ประเภทสมาชิก

ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก

ซีเนียร์ ประเภทสมาชิก คำจำกัดความ
1 value_type T (พารามิเตอร์แรกของเทมเพลต)
2 container_type พารามิเตอร์ที่สองของเทมเพลต
3 size_type size_t
4 เอกสารอ้างอิง value_type &
5 const_reference const value_type &
6 different_type ptrdiff_t

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

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

ตัวสร้าง

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

สร้างวัตถุคิวว่างโดยมีองค์ประกอบเป็นศูนย์

2 คิว :: คิว เริ่มต้นตัวสร้าง

โครงสร้างวัตถุคิวและกำหนดภาชนะภายในโดยสำเนาของctnr

3 คิว :: ตัวสร้างการย้ายคิว

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

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

โครงสร้างคิวกับสำเนาของแต่ละองค์ประกอบที่มีอยู่ในปัจจุบันคิวอื่น ๆ

Destructor

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

ทำลายคิวโดยการยกเลิกการจัดสรรหน่วยความจำคอนเทนเนอร์

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

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

ส่งคืนการอ้างอิงถึงองค์ประกอบสุดท้ายของคิว

2 คิว :: emplace

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

3 คิว :: ว่าง

ทดสอบว่าคิวว่างหรือไม่

4 คิว :: ด้านหน้า

ส่งคืนการอ้างอิงถึงองค์ประกอบแรกของคิว

5 คิว :: ตัวดำเนินการ = คัดลอกเวอร์ชัน

กำหนดเนื้อหาใหม่ให้กับคิวโดยแทนที่เนื้อหาเก่า

6 คิว :: ตัวดำเนินการ = ย้ายเวอร์ชัน

กำหนดเนื้อหาใหม่ให้กับคิวโดยแทนที่เนื้อหาเก่า

7 คิว :: ป๊อป

ลบองค์ประกอบด้านหน้าของคิว

8 คิว :: เวอร์ชันผลักดัน

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

9 คิว :: รุ่นผลักดัน

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

10 คิว :: ขนาด

ส่งคืนจำนวนองค์ประกอบทั้งหมดที่มีอยู่ในคิว

11 คิว :: แลกเปลี่ยน

แลกเปลี่ยนเนื้อหาของคิวด้วยเนื้อหาของคิวอื่น

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

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

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

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

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

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

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

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

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

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

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

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

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

7 แลกเปลี่ยน

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

ข้อมูลเบื้องต้นเกี่ยวกับ priority_queue

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

คำจำกัดความ

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

template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;

พารามิเตอร์

  • T - ประเภทขององค์ประกอบที่มีอยู่

    T อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด

  • Container - ประเภทของวัตถุคอนเทนเนอร์ที่สำคัญ

  • Compare - วัตถุเปรียบเทียบที่จะใช้ในการจัดลำดับความสำคัญ _ คิว

    นี่อาจเป็นตัวชี้ฟังก์ชันหรือวัตถุฟังก์ชันที่สามารถเปรียบเทียบอาร์กิวเมนต์ทั้งสองได้

ประเภทสมาชิก

ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก

ซีเนียร์ ประเภทสมาชิก คำจำกัดความ
1 value_type T (พารามิเตอร์แรกของเทมเพลต)
2 container_type พารามิเตอร์ที่สองของเทมเพลต
3 size_type size_t
4 เอกสารอ้างอิง value_type &
5 const_reference const value_type &
6 different_type ptrdiff_t

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

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

ตัวสร้าง

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

สร้าง priority_queue ว่างโดยมีองค์ประกอบเป็นศูนย์

2 Priority_queue :: priority_queue เตรียมใช้งานตัวสร้าง

โครงสร้างวัตถุ priority_queue และกำหนดภาชนะภายในโดยสำเนาของctnr

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

สร้างลำดับความสำคัญที่มีองค์ประกอบมากที่สุดในช่วงแรกถึงสุดท้าย

4 Priority_queue :: ตัวสร้างการย้ายpriority_queue

สร้างลำดับความสำคัญด้วยเนื้อหาของอื่น ๆ โดยใช้ความหมายการย้าย

5 Priority_queue :: ตัว สร้างสำเนาpriority_queue

สร้างลำดับความสำคัญด้วยสำเนาของแต่ละองค์ประกอบที่มีอยู่ใน priority_queue อื่นที่มีอยู่

Destructor

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

ทำลาย priority_queue โดยการยกเลิกการจัดสรรหน่วยความจำคอนเทนเนอร์

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

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

สร้างและแทรกองค์ประกอบใหม่ตามลำดับที่จัดเรียงใน Priority_queue

2 priority_queue :: ว่างเปล่า

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

3 priority_queue :: ตัวดำเนินการ = เวอร์ชันคัดลอก

กำหนดเนื้อหาใหม่ให้กับ priority_queue โดยการแทนที่เนื้อหาเก่า

4 priority_queue :: ตัวดำเนินการ = ย้ายเวอร์ชัน

กำหนดเนื้อหาใหม่ให้กับ priority_queue โดยการแทนที่เนื้อหาเก่า

5 priority_queue :: ป๊อป

ลบองค์ประกอบด้านหน้าของ priority_queue

6 priority_queue :: เวอร์ชันพุชคัดลอก

แทรกองค์ประกอบใหม่ตามลำดับที่จัดเรียง

7 priority_queue :: เวอร์ชันผลักดัน

แทรกองค์ประกอบใหม่ตามลำดับที่จัดเรียง

8 priority_queue :: ขนาด

ส่งคืนจำนวนองค์ประกอบทั้งหมดที่มีอยู่ใน priority_queue

9 priority_queue :: แลกเปลี่ยน

แลกเปลี่ยนเนื้อหาของ priority_queue กับเนื้อหาของ priority_queue อื่น

10 priority_queue :: ด้านบน

ส่งกลับการอ้างอิงถึงองค์ประกอบแรกของลำดับความสำคัญ

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

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

แลกเปลี่ยนเนื้อหาของ priority_queue กับเนื้อหาของ priority_queue อื่น