When push_back, insert, reserve, resize and other functions cause memory reallocation, or when insert and erase cause the position of the element to move, vector will try to "move" the element to a new memory area. Vector usually guarantees strong exception safety. If the element type does not provide a move constructor that guarantees no exceptions, vector usually uses a copy constructor.