-
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