Ich weiss jetzt nicht, ob ich dich richtig verstanden habe, aber intern unterscheidet sich der stl-vector nicht viel von einem *normalen* array (=Pointer auf allokierten Speicher).
Aber: Intern wird zwischen size (enthaltene Elemente) und capacity (allokierter Speicher) unterschieden. Das wird gemacht, damit z.b. nicht bei jedem push_back() neuer Speicher allokiert werden und die alten Elemente kopiert werden müssen.
Deswegen wundert es mich auch, warum in diesem Thread noch nicht erwähnt wurde, dass der Vector am Anfang auf eine angemessene Kapazität gesetzt werden sollte. Es ist natürlich kein Fehler wenn man das nicht berücksichtigt, aber die Performanz kann dadurch schon deutlich leiden. Für Probleme mit dynamischer Größe gibt es bessere Datenstrukturen...
Aber: Intern wird zwischen size (enthaltene Elemente) und capacity (allokierter Speicher) unterschieden. Das wird gemacht, damit z.b. nicht bei jedem push_back() neuer Speicher allokiert werden und die alten Elemente kopiert werden müssen.
Deswegen wundert es mich auch, warum in diesem Thread noch nicht erwähnt wurde, dass der Vector am Anfang auf eine angemessene Kapazität gesetzt werden sollte. Es ist natürlich kein Fehler wenn man das nicht berücksichtigt, aber die Performanz kann dadurch schon deutlich leiden. Für Probleme mit dynamischer Größe gibt es bessere Datenstrukturen...