C++ deque
π¦ C++ deque (Double-Ended Queue)
std::deque is a sequence container in the C++ STL that allows fast insertion and deletion at both ends (front and back).
It combines some advantages of vector and queue.
πΉ 1. Why Use deque?
Insert/delete at both ends in O(1)
Random access like vector
Used as underlying container for
stackandqueueNo costly shifting like vector (at front)
πΉ 2. Include Header
πΉ 3. Declaring a Deque
With initialization:
πΉ 4. Adding Elements
πΉ 5. Accessing Elements
πΉ 6. Removing Elements
πΉ 7. Traversing a Deque
Range-based Loop
Iterator
πΉ 8. Insert & Erase (Middle)
πΉ 9. Size & Capacity
β deque does not expose capacity() like vector.
πΉ 10. Deque Example
Output:
πΉ 11. Deque vs Vector
| Feature | deque | vector |
|---|---|---|
| Memory | Non-contiguous blocks | Contiguous |
| Insert front | O(1) | O(n) |
| Insert back | O(1) | O(1) |
| Random access | O(1) | O(1) |
| Cache-friendly | β | β |
πΉ 12. Deque vs List
| Feature | deque | list |
|---|---|---|
| Random access | β | β |
| Insert middle | O(n) | O(1) |
| Memory overhead | Medium | High |
| Cache-friendly | Medium | Low |
πΉ 13. Time Complexity
| Operation | Complexity |
|---|---|
| push_front / push_back | O(1) |
| pop_front / pop_back | O(1) |
| Random access | O(1) |
| Insert middle | O(n) |
β Common Mistakes
β Use:
π Summary
deque= double-ended queueFast insertion/removal at both ends
Supports random access
Used internally by
stackandqueueGood alternative to vector when front operations are needed
