Here is the quick note on all the data structures we discussed, all in one place.

Data StructureUnderlying StructureOperationTime ComplexityKey Characteristic
std::vectorDynamic ArrayAccess by index [i]O(1)Fast random access.
Add/Remove at EndAmortized O(1)Can be slow when resizing.
Add/Remove at MiddleO(n)Requires shifting elements.
std::unordered_mapHash TableAccess, Insert, DeleteAverage: O(1)Extremely fast on average. Unordered.
std::unordered_setWorst: O(n)Can be slow due to hash collisions.
std::mapBalanced Binary Search Tree(Red-Black Tree)Access, Insert, DeleteO(logn)Guaranteed performance. Keys are sorted.
std::setBalanced Binary Search Tree(Red-Black Tree)Access, Insert, DeleteO(logn)Guaranteed performance. Keys are sorted.
std::queueDouble-Ended Queue (deque)push, pop, frontO(1)First-In, First-Out (FIFO) access.
std::stackDouble-Ended Queue (deque)push, pop, topO(1)Last-In, First-Out (LIFO) access.