Tanto per info, sono false entrambe le cose in quanto l’assembly generato dai due casi è identico:
for vs while
push_back vs emplace_back
C’è un caso però in cui il while è consigliato in quanto più veloce sia da scrivere che probabilmente da leggere, potrebbe inoltre essere leggermente (aka non rilevante) più efficiente in quanto usa un registro in meno (non deve tenere conto di i) e si risparmia qualche op.