Boost C++ Libraryのお勉強その14
Boost.MemberFunction
memberをmemと略すのはどうなんだろ。cの標準ライブラリ的にmemはmemoryの略だよな。
#include <iostream> #include <vector> #include <algorithm> #include <boost/mem_fn.hpp> class Dummy { private: int e_; public: Dummy(int e) : e_(e) {} void fun(void) { std::cout << e_ << std::endl; } }; int main(void) { std::vector < Dummy > v; v.push_back(Dummy(1)); v.push_back(Dummy(2)); v.push_back(Dummy(3)); std::for_each(v.begin(), v.end(), boost::mem_fn(&Dummy::fun)); return 0; }
1 2 3
Boost.MinMax
minとmaxを一度に返すもの。こういう細々とした便利関数は重要だと思う。どのくらいの頻度で必要になるかは分からないが…。
#include <iostream> #include <boost/tuple/tuple_io.hpp> #include <boost/algorithm/minmax.hpp> int main(void) { std::cout << boost::minmax(1, 0) << std::endl; return 0; }
(0, 1)
Boost.MultiArray
領域は連続しているらしい。
#include <iostream> #include <iterator> #include <algorithm> #include <boost/multi_array.hpp> int main(void) { boost::multi_array < int, 3 > ma(boost::extents[2][2][2]); boost::multi_array < int, 3 >::index i, j, k; for (i = 0; i < 2; ++i) { for(j = 0; j < 2; ++j) { for(k = 0; k < 2; ++k) { ma[i][j][k] = 1; } } } return 0; }