A list
may be used when we need to insert/delete at the middle frequently, such as a linked list.
A vector
may be used when we need random-access, such as a dynamic normal array.
A deque
may be used like a queue.
A map
may be used like a dictionary.
A set
may be used to check whether a value is present.