Для простых типов, таких как целые, объявление вектора с количеством необходимых элементов, скорее всего, будет быстрее, чем использование push_back
, потому что вектору не нужно делать никаких перераспределений. Однако со сложными классами, имеющими конструкторы, выполнение по умолчанию будет конструировать все элементы по умолчанию, а затем перезаписывать их, тратя время.
В обоих случаях наилучшим решением будет использование reserve
для выделения пространства длявсе элементы сразу, не создавая эти элементы. Тогда вы можете использовать push_back
, не беспокоясь о перераспределении.