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++) {
です!!!!