Why can the following loop have undefined behavior?std::vector<int> v = {1, 2, 3}; int& first = v[0]; for (int i = 0; i < 1000; ++i) { v.push_back(i); } std::cout << first;