Junior
Дар кадом контейнерҳо структураҳои додаҳо stack ва queue асос ёфтаанд?
sobes.tech AI
Ҷавоб аз AI
std::stack โดยค่าเริ่มต้นอิงตาม std::deque เช่นเดียวกับ std::queue ที่อิงตาม std::deque ด้วย
สามารถใช้คอนเทนเนอร์อื่น ๆ ได้:
std::stackสามารถอิงตามstd::vectorหรือstd::listได้std::queueสามารถอิงตามstd::listได้
เงื่อนไขที่จำเป็นสำหรับคอนเทนเนอร์พื้นฐาน: ต้องสนับสนุนการดำเนินการเพิ่มและลบองค์ประกอบจากหนึ่งหรือทั้งสองด้าน (สำหรับ stack - ด้านเดียวเท่านั้น, สำหรับ queue - จากด้านต่าง ๆ)
ตัวอย่างการใช้งานกับคอนเทนเนอร์อื่น:
#include <stack>
#include <queue>
#include <vector>
#include <list>
// สแต็กบนพื้นฐานของ std::vector
std::stack<int, std::vector<int>> vector_stack;
// สแต็กบนพื้นฐานของ std::list
std::stack<int, std::list<int>> list_stack;
// คิวบนพื้นฐานของ std::list
std::queue<int, std::list<int>> list_queue;