Wir wissen, dass die Neuzuweisung Mechanismus sorgt mehr Speicher der Zuteilung, die wir wirklich brauchen, wenn std::vector::push_back()
anrufen. Normalerweise wächst die Kapazität mit dem Multiplikator 2x oder mit einer goldenen Verhältnis Zahl ~ 1,618 ...amortizing in std :: vector :: Größe und std :: vector :: push_back
Angenommen, wir Elemente hinzufügen wie folgt:
std::vector<int> v;
for(unsigned i = 0; i < 100000; ++i)
{
v.resize(v.size() + 1);
}
Ist sichergestellt, dass die Kapazität des Vektors " verdoppelt "wenn die Umverteilung stattfindet? Mit anderen Worten: wäre das „+1 Resize“ zuteilen dem Speicher die gleiche Art und Weise, wie es für push_back
erfolgt.
Oder es ist ein reines Implementierung abhängig, was?
ich nicht die Frage verstehen. Sie erwähnen bereits, dass die Kapazität normalerweise um den Faktor 2 (dh verdoppelt) ** oder ** goldener Wert wächst. – user463035818
@ tobi303 Ich denke OP fragt nach 'resize' im Vergleich zu' push_back'. –
@ChrisDrew ah ok, jetzt muss ich die Frage verstehen;), obwohl ich denke immer noch, es – user463035818