-
Containers
-
Associative Containers
-
Unsorted Unordered Associative
| Example | How elements are stored | Access | Advantages | Complexity | |
|---|---|---|---|---|---|
| Hashmap |
C++(unordered_map) Rust(HashMap) Python(Dictionary) Go(map) |
Hash Table | Insert, search, delete = O(1) | Best:O(1), Worst:O(n) | |
| HashSet |
C++(unordered_set) Rust(HashSet) Python(set) |
Hash Table | Insert, search, delete = O(1) | Best:O(1), Worst:O(n) |
Sorted Ordered
| Example | How elements are stored | Access | Advantages | Complexity | |
|---|---|---|---|---|---|
| map | C++(set) |
Self-Balanced BST (RBT) All elements are in ascending or decending order |
Sorted elements | O(nlogn)//All cases | |
| set | C++(set) |
Self-Balanced BST (RBT) All elements are in ascending or decending order |
Sorted elements | O(nlogn)//All cases |
Container Adoptors
stack
Queue
priority_queue
Sequence Containers
| Example | How elements are stored | Access | Advantages | Complexity | |
|---|---|---|---|---|---|
| vector | C++(vector), Rust(Vec), Python(List), Go(Slice) | Contigiuosly | Sequential | Better cache locality | O(n) |
| Deque | C++(deque), Rust(VecDeque), Python(deque) | Contigiuosly | Sequential | Better cache locality | O(n) |
Iterators
Functors