Типичное поведение: внутренне, std::vector
имеет непрерывный массив длины capacity
. В любой данный момент только size
элементы фактически используются. Если в любой момент size
превысит capacity
(допустим, вы много раз звонили push_back()
), выделяется новый, больший внутренний массив (скажем, capacity
может удвоиться). Затем все элементы из старого массива копируются в новый, а старые элементы и массив удаляются.