Мы знаем, что механизм перераспределения заботится о выделении большего объема памяти, который нам действительно нужен при вызове std::vector::push_back()
. Обычно емкость растет с множителем 2х или с числом золотого сечения ~1,618...
Предположим, мы добавляем элементы следующим образом:
std::vector<int> v;
for(unsigned i = 0; i < 100000; ++i)
{
v.resize(v.size() + 1);
}
Гарантируется ли, что пропускная способность вектора «удвоится», если произойдет перераспределение? Другими словами: будет ли «+1 изменение размера» выделять память так же, как это делается для push_back
.
Или это чисто зависит от реализации?
resize
по сравнению сpush_back
. - person Chris Drew   schedule 26.10.2017