🔶 What is a Container?
C++ STL mein container ek pre-defined data structure hota hai jo data ko store karta hai.
🔹 Example – array, vector, stack, queue, map, set, etc.
🔹 Inka use karke humko khud se koi data structure banana nahi padta.
🧩 3 Types of Containers in STL
| Type |
Description |
Examples |
| 1️⃣ Sequence |
Linear order mein data store hota hai |
vector, list, deque |
| 2️⃣ Associative |
Key-value pair ya sorted data |
set, map, multiset, multimap |
| 3️⃣ Unordered |
Hash table-based, fast access |
unordered_set, unordered_map |
🔷 1. Sequence Containers
| Container |
Description |
Best Use |
✅ vector |
Dynamic array |
Most common, when size not fixed |
✅ list |
Doubly linked list |
Frequent insert/delete in middle |
✅ deque |
Double-ended queue |
Insert/remove from both ends |
🔷 2. Associative Containers
| Container |
Description |
Best Use |
✅ set |
Unique sorted values |
Store unique elements |
✅ map |
Key-value pair (sorted by key) |
Lookup by key |
✅ multiset |
Duplicate sorted values |
Counted items |
✅ multimap |
Duplicate keys allowed |
Grouping values by key |
🔷 3. Unordered Containers (Hashing-based)
| Container |
Description |
Time Complexity |
✅ unordered_set |
Unique values, no order |
O(1) average |
✅ unordered_map |
Key-value pair, no order |
O(1) average |
✅ unordered_multiset |
Duplicates allowed |
O(1) average |
✅ unordered_multimap |
Duplicate keys |
O(1) average |
📋 Quick Summary Table:
| Container |
Ordered? |
Duplicates? |
Key-Value? |
TC (Insert/Find) |
vector |
Yes |
Yes |
No |
O(1) access |
list |
Yes |
Yes |
No |
O(n) |
deque |
Yes |
Yes |
No |
O(1) ends only |
set |
Yes |
❌ No |
No |
O(log n) |
map |
Yes |
❌ No |
✅ Yes |
O(log n) |
multiset |
Yes |
✅ Yes |
No |
O(log n) |
unordered_set |
No |
❌ No |
No |
O(1) avg |
unordered_map |
No |
❌ No |
✅ Yes |
O(1) avg |