algorithm.hpp
ひょんなことから
- http://github.com/januswel/cpplib/blob/master/header/algorithm.hpp
- http://github.com/januswel/cpplib/blob/master/sample/algorithm/main.cpp
util::algorithm::copy_if() 関数はなんで標準に無いのか不思議なんだけど (
他はすべて ostream に何かしら copy するというものなんだけど C++ では sequence container だとか配列の中身を console に表示するには以下のような code が pattern としてあるみたいで、
// make ostream_iterator std::ostream_iterator<const char*> oitr(std::cout, "\n"); // copy contents to ostream_iterator std::copy(argv, argv + argc, oitr);
これはこれで compact に書けるなぁとちょっと感心したんだけど関数名が copy なので直感的じゃないのといちいち ostream_iterator を作るのもアレだなぁと思ったので上記とほぼ同じ処理を wrap した関数を print なんちゃらという名前でいくつか定義してみた。上記と同様の処理をするには以下のような感じ。まぁ細かいところは sample code 参照ということで。
util::algorithm::print<const char*>(argv, argv + argc, std::cout, "\n");