Dołączenie std :: vector do siebie, niezdefiniowane zachowanie?

To pytanie uczynił mnie niepewnym co do dołączenia wektora do siebie. Pytanie brzmi: następujące linie kodu robią to, czego oczekuję, ale czy jest to zgodne ze standardem?

vec.reserve(vec.size() * 2):
vec.insert(vec.end(), vec.begin(), vec.end());

Śledzenie (bezreserve()) nadal działa, czy jest nawet zgodny ze standardem?

vec.insert(vec.end(), vec.begin(), vec.end());

Lub w zależności od wdrożenia?

questionAnswers(1)

yourAnswerToTheQuestion