ไลบรารี 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 | แลกเปลี่ยน
แลกเปลี่ยนเนื้อหาของสองกอง |