🔶 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