ไลบรารี 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 อื่น |