Warum macht std :: vector :: insert alle Iteratoren nach der Einfügemarke ungültig?

Wanninsertin einestd::vector Der C ++ - Standard stellt sicher, dass alle Iteratoren vor der Einfügemarke gültig bleiben, solange dercapacity nicht erschöpft ist (siehe [23.2.4.3/1] oderstd :: vector iterator invalidation).

Was ist der Grund, warum Iteratoren nach dem Einfügepunkt nicht gültig bleiben dürfen (wenn die Kapazität nicht erschöpft ist)? Natürlich würden sie dann aber auf ein anderes Element verweisen (von der vermuteten Umsetzung ab)std::vector) Es sollte weiterhin möglich sein, einen solchen Iterator zu verwenden (z. B. Dereferenzieren oder Inkrementieren).

Antworten auf die Frage(4)

Ihre Antwort auf die Frage