for_each一行メモ

std::for_eachは多次元配列にも対応している、ということをただメモしておくだけである。ぐぐっても割と出てこなかったのでいろいろと書いてみた。

#include<iostream>
#include<algorithm>

int main()
{
        const int size = 3;
        int array[size][size] = {3,1,2,3,2,3,3,4,1};
 
        std::for_each(&array[0][0],&array[size-1][size],[](int & x){x = 0;});
 
        for(int i=0;i<size;++i)
                for(int j=0;j<size;++j)
                        std::cout << array[i][j] << std::endl;
}

配列もポインタに変換してしまえばi番目の要素、みたいなアクセスが可能なので当たり前といえば当たり前の結果だねこれで簡単な初期化や値設定なら一行で書ける。あと、intならmemsetを使ってもいいのではないかとは思う