ไลบรารี 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 แลกเปลี่ยน

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