こんにちは。ヤマヤタケシです。
std::generateを使ってみました。
便利は便利っぽいのですが、新しいforを使ってもあまりコードが変わらないですね。ただ、forのコードから生成していることを読み取るよりは、generate と書いてあったほうが意味がはっきりするので使ったほうが良い!と弱気に主張してみます。
//生成する std::generate #include#include #include void print_array( const std::array &list ) { //表示 for( auto v : list ) { std::cout << v << ","; } std::cout << std::endl; } int main() { std::array list; //1から加算して埋める { int n = 1; std::generate( list.begin(), list.end(), [&n](){ return n++; } ); print_array( list ); } //うーん、C++11としては、forを使ったほうがやっぱり簡単かなぁ・・・ { int n = 1; for( auto &v : list ){ v = n++; } print_array( list ); } return 0; }
generate_test: generate_test.cpp g++ generate_test.cpp -std=c++11 -o generate_test ./generate_test
make -k g++ generate_test.cpp -std=c++11 -o generate_test ./generate_test 1,2,3,4,5,6,7,8,9,10, 1,2,3,4,5,6,7,8,9,10,
そんじゃまた。