Moron / Aryabhatta đúng, nhưng chi tiết hơn một chút có thể hữu ích.
Hàng đợi và ngăn xếp là các vùng chứa cấp cao hơn deque, vector hoặc list. Bởi điều này, ý tôi là bạn có thể tạo một hàng đợi hoặc ngăn xếp ra khỏi các vùng chứa cấp thấp hơn.
Ví dụ:
std::stack<int, std::deque<int> > s;
std::queue<double, std::list<double> > q;
Sẽ xây dựng một chồng các int bằng cách sử dụng deque làm vùng chứa bên dưới và một hàng đợi nhân đôi sử dụng danh sách làm vùng chứa bên dưới.
Bạn có thể s
coi nó như một deque hạn chế và q
như một danh sách hạn chế.
Tất cả những gì cần thiết là vùng chứa cấp thấp hơn thực hiện các phương pháp cần thiết của vùng chứa cấp cao hơn. Đây là back()
, push_back()
và pop_back()
cho chồng và front()
, back()
, push_back()
, và pop_front()
cho hàng đợi.
Xem ngăn xếp và hàng đợi để biết thêm chi tiết.
Đối với deque, nó không chỉ là một hàng đợi mà bạn có thể chèn ở cả hai đầu. Đặc biệt, nó có quyền truy cập ngẫu nhiên operator[]
. Điều này làm cho nó giống như một vectơ, nhưng là một vectơ mà bạn có thể chèn và xóa ở đầu bằng push_front()
và pop_front()
.
Xem deque để biết chi tiết.
stack
vàqueue
chỉ hạn chếdeque
khỏi bộ tính năng đầy đủ của nó.