ไลบรารี C ++ - <stack>
บทนำ
Stack เป็นโครงสร้างข้อมูลที่ออกแบบมาเพื่อทำงานในบริบท LIFO (Last in First out) ในองค์ประกอบสแต็กจะถูกแทรกและนำออกจากปลายเพียงด้านเดียว
Stack class คือคอนเทนเนอร์อะแดปเตอร์ คอนเทนเนอร์คือออบเจ็กต์ที่เก็บข้อมูลประเภทเดียวกัน Stack สามารถสร้างจากคอนเทนเนอร์ลำดับต่างๆ หากไม่ได้ระบุคอนเทนเนอร์จะใช้คอนเทนเนอร์dequeเริ่มต้น คอนเทนเนอร์อะแด็ปเตอร์ไม่รองรับตัวทำซ้ำดังนั้นเราจึงไม่สามารถใช้เพื่อจัดการข้อมูลได้ อย่างไรก็ตามพวกเขาสนับสนุนฟังก์ชันสมาชิกpush ()และpop ()สำหรับการแทรกและลบข้อมูลตามลำดับ
คำจำกัดความ
ด้านล่างนี้คือคำจำกัดความของ std :: stack จากไฟล์ส่วนหัว <stack>
template <class T, class Container = deque<T> > class stack;
พารามิเตอร์
T - ประเภทขององค์ประกอบที่มีอยู่
T อาจถูกแทนที่ด้วยประเภทข้อมูลอื่น ๆ รวมถึงประเภทที่ผู้ใช้กำหนด
Container - ประเภทของวัตถุคอนเทนเนอร์ที่สำคัญ
ประเภทสมาชิก
ประเภทสมาชิกต่อไปนี้สามารถใช้เป็นพารามิเตอร์หรือประเภทการส่งคืนโดยฟังก์ชันสมาชิก
| ซีเนียร์ | ประเภทสมาชิก | คำจำกัดความ |
|---|---|---|
| 1 | value_type | T (พารามิเตอร์แรกของเทมเพลต) |
| 2 | container_type | พารามิเตอร์ที่สองของเทมเพลต |
| 3 | size_type | size_t |
| 4 | เอกสารอ้างอิง | value_type & |
| 5 | const_reference | const value_type & |
ฟังก์ชั่นจาก <stack>
ด้านล่างนี้คือรายการวิธีการทั้งหมดจากส่วนหัว <stack>
ตัวสร้าง
| ซีเนียร์ | วิธีการและคำอธิบาย |
|---|---|
| 1 | stack :: stack default constructor สร้างวัตถุสแต็กว่างโดยมีองค์ประกอบเป็นศูนย์ |
| 2 | stack :: stack copy constructor สร้างสแต็กพร้อมสำเนาของแต่ละองค์ประกอบที่อยู่ในสแต็กอื่น |
| 3 | stack :: ตัวสร้างการย้ายสแต็ก สร้างสแต็กที่มีเนื้อหาของสิ่งอื่น ๆ โดยใช้ความหมายการย้าย |
Destructor
| ซีเนียร์ | วิธีการและคำอธิบาย |
|---|---|
| 1 | กอง :: ~ กอง
ทำลายสแต็กโดยการยกเลิกการจัดสรรหน่วยความจำคอนเทนเนอร์ |
ฟังก์ชั่นสมาชิก
| ซีเนียร์ | วิธีการและคำอธิบาย |
|---|---|
| 1 | สแต็ค :: emplace
สร้างและแทรกองค์ประกอบใหม่ที่ด้านบนสุดของสแต็ก |
| 2 | กอง :: ว่างเปล่า
ทดสอบว่าสแต็กว่างหรือไม่ |
| 3 | stack :: operator = copy version กำหนดเนื้อหาใหม่ให้กับสแต็กโดยแทนที่เนื้อหาเก่า |
| 4 | stack :: operator = ย้ายเวอร์ชัน กำหนดเนื้อหาใหม่ให้กับสแต็กโดยแทนที่เนื้อหาเก่า |
| 5 | กอง :: ป๊อป
ลบองค์ประกอบด้านบนออกจากสแต็ก |
| 6 | stack :: เวอร์ชันพุชสำเนา แทรกองค์ประกอบใหม่ที่ด้านบนสุดของสแต็ก |
| 7 | stack :: รุ่นpush move แทรกองค์ประกอบใหม่ที่ด้านบนสุดของสแต็ก |
| 8 | กอง :: ขนาด
ส่งคืนจำนวนองค์ประกอบทั้งหมดที่มีอยู่ในสแต็ก |
| 9 | กอง :: แลกเปลี่ยน
แลกเปลี่ยนเนื้อหาของสแต็กกับเนื้อหาของสแต็กอื่น |
| 10 | กอง :: ด้านบน
ส่งคืนการอ้างอิงถึงองค์ประกอบบนสุดของสแต็ก |
ฟังก์ชันที่ไม่มีสมาชิกมากเกินไป
| ซีเนียร์ | วิธีการและคำอธิบาย |
|---|---|
| 1 | ตัวดำเนินการ ==
ทดสอบว่าสองกองเท่ากันหรือไม่ |
| 2 | ตัวดำเนินการ! =
ทดสอบว่าสองกองเท่ากันหรือไม่ |
| 3 | ตัวดำเนินการ <
ทดสอบว่ากองแรกน้อยกว่ากองอื่นหรือไม่ |
| 4 | ตัวดำเนินการ <=
ทดสอบว่ากองแรกน้อยกว่าหรือเท่ากับกองอื่นหรือไม่ |
| 5 | ตัวดำเนินการ>
ทดสอบว่ากองแรกมากกว่ากองอื่นหรือไม่ |
| 6 | ตัวดำเนินการ> =
ทดสอบว่ากองแรกมากกว่าหรือเท่ากับกองอื่นหรือไม่ |
| 7 | แลกเปลี่ยน
แลกเปลี่ยนเนื้อหาของสองกอง |