ラムダ関数を使用してコンテナのすべての値を初期化する方法はありますstd::for_each
か? std::vector
ランダムなs の3 次元が必要です。別のループint
を実行することなく、コンストラクター内でこれを実行できれば便利です。std::for_each
私は次のことを試みましたが失敗しました:
#include <iostream> /* std::cout */
#include <vector> /* std::vector */
#include <algorithm> /* std::for_each */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main(){
srand(time(nullptr));
/* only initializes first element, count[0][0][0] */
std::vector<std::vector<std::vector<int>>> count{100,
std::vector<std::vector<int>>{100,
std::vector<int>{100,
[](){
return = rand() % 100;
}()
}
}
};
int temp = 0;
/* here is how I access all elements using std::for_each and lambdas */
std::for_each(std::begin(count), std::end(count),
[&temp](std::vector<std::vector<int>> i){
std::for_each(std::begin(i), std::end(i), [&temp](std::vector<int> j){
std::for_each(std::begin(j), std::end(j), [&temp](int k) {
if(k > temp){
temp = k;
}
});
});
});
}
どんな助けやアイデアも大歓迎です!