Por que o std :: vector :: insert invalida todos os iteradores após o ponto de inserção?
Quandoinsert
-em umstd::vector
o padrão C ++ assegura que todos os iteradores antes do ponto de inserção permaneçam válidos enquantocapacity
não está esgotado (ver [23.2.4.3/1] ouinvalidação de iterador std :: vector).
Qual é a lógica por trás de não permitir que os iteradores após o ponto de inserção permaneçam válidos (se a capacidade não estiver esgotada)? É claro, eles apontariam para um elemento diferente, mas (da suposta implementação destd::vector
) ainda deve ser possível usar um iterador (por exemplo, desreferencia ou incremento).