' P '

whatever I will forget

C++ for Loop Tips

for文の中でのカウンター変数宣言

int main () {
    for (int i {0} ; i < 5 ; i++) {
        //statement
    }
}

こうすると、for文の中だけで変数 i は使用される。
例えば、for文の外で、
int = 100 とかを行うと、コンパイルエラーとなる。
for文用の変数はfor文の条件内で定義すると良いかも。

for文内での ++ increment

for文内での++においては、pre / postは適用されない。
基本的にpostの処理となり、実行後に+1となる。

for文条件内での複数変数処理 (Comma Operator)

int main () {
    for (int i {0}, int o {2} ; i < 5 ; i++, o++) {
        //statement
    }
}

カンマで区切れば複数変数も使用可。

increment以外も使える

もちろん、++i以外にも、 i += 2とか、--iも使えます。

Vectorを使うときの標準例

#include <vector>

int main () {
    vector <int> vc {1,2,3,4,5}
    for (unsigned int i {0} ; i < vc.size() ; i++) {
        //statement
    }
}

みたいな感じ。
注意すべきは、.size()を使用したとき、この値はunsigned intになる。
なぜなら、sizeを知りたいのにsizeがマイナスの値になることはないからである。
なので、上記条件の場合は明示的にunsigned intとしてカウンタ変数を定義してあげるべきである。(定義しないとコンパイルwarningとなる)

注意

上で書いている通りで重複して申し訳ありませんが、For文でvectorの要素分だけループさせたい時、
unsigned int vec_size = vec.size(); なんて変数を定義する必要はありません!!!!(やってしまってたので覚えるため、もう一度書きます)
ただただ、for (unsigned int i{0}; i < vec.size() i++) {です!!!!