Ist mir garantiert, dass Zeiger auf std :: vector-Elemente gültig sind, nachdem der Vektor verschoben wurde?

Betrachtet man dieses Beispiel:

std::vector<int> v1 = { 1, 2, 3 };
const int* i = &v1[1];
std::vector<int> v2(std::move(v1));
std::cout << *i << std::endl;

Auch wenn dies in vielen STL-Implementierungen wahrscheinlich funktionieren wird, wird mir durch den Standard garantiert, dass keine Neuzuweisungen durchgeführt werden, wenn astd::vector wird verschoben und der interne Puffer gesichertv2 ist das Gleiche wie früherv1? Ich konnte diese Informationen weder im Internet noch im Standard selbst finden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage