v[3]に要素が無かった状態で
if (!v[3]) が実行されると
v[3] = int();
と同様の処理が起こり、vの要素数が増えるわけだが
それで良いなら。