Push and pop relate to sequence containers where elements can be inserted and removed from the sequence with push and pop operations, respectively. Typically, push and pop apply to one end of the sequence, but not necessarily at the same end. However, if a push or a pop can be applied to both ends of a sequence, the operations are named push_front, push_back, pop_front and pop_back.Ideally, push and pop are constant-time operations. However, depending on the container type, a push or pop at one end may be more efficient than at the other. The following is a summary of common container types and the efficiencies that can be expected:A vector supports push and pop at either end. However, push_back and pop_back are constant time operations unless a reallocation occurs (we can reserve memory at the end of the vector to minimise the need for reallocations) whereas push_front and pop_front are always linear-time operations.A forward list supports push and pop at the head of the list only, both of which are constant-time operations.A bi-directional list supports push and pop at either end, all of which are constant-time operations.A queue supports push at the back and pop at the front, both of which are constant-time operations.A deque (double-ended-queue) supports push and pop at either end, all of which are constant-time operations.A stack supports push and pop at the top of the stack, both of which are constant time operations.Note that a fixed-length array does not support push or pop operations because it cannot grow or shrink in size.