for (int i = 0; i < n + 1; ++i) {;}

とやると、 i が n + 1 未満かどうかの判定をする際、毎度
n + 1 を計算してそれを i と比較するということになるので
しょうか?

もし、そうなら、

m = n + 1
for (int i = 0; i < m; ++i) {;}

としたほうがよいのでしょうか?