insert delete index
beg mid end beg mid end
C++

Java

Python

Haskell
sequential vector<T>
ArrayList<E>
list/tuple
array
O(n) O(n) ~O(1) O(n) O(n) O(1) O(1)
deque<T>
Deque<E>
deque
n/a
~O(1) O(n) ~O(1) O(1) O(n) O(1) O(1)
list<T>
LinkedList<E>
n/a
list/tuple
O(1) O(1) O(n)
stack<T, C>
Stack<E>
n/a
n/a
n/a n/a n/a
queue<T, C>
Queue<E>
n/a
n/a
n/a n/a n/a
hybrid priority_queue<T, C, P>
PriorityQueue<E>
heapq
n/a
O(log n) O(log n) n/a
associative set<K, P>
TreeSet<K>
n/a
Data.Set
O(log n) O(log n) n/a
hash_set<K, HF, EP>
HashSet<K>
set/frozenset
n/a
~O(1) ~O(1) n/a
map<K, V, P>
TreeMap<K, V>
n/a
Data.Map
O(log n) O(log n) n/a
hash_map<K, V, HF, EP>
HashMap<K, V>
dict
n/a
~O(1) ~O(1) n/a