-
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