Warum macht std :: vector :: insert alle Iteratoren nach der Einfügemarke ungültig?
Wanninsert
in 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).