Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

STL入門 第1回 ~algorithm編~

スポンサードリンク

f:id:fa11enprince:20140517013817j:plain
C++使うなら最低限STLくらいは知らないといけないだろうということで勉強中です。
STLくらいっていうけど結構ここから険しい道の入口なんですけどね…。
他の言語に比べて気持ち悪いシンタックスが増えるし、
どういうわけか覚えにくい……なんでだろ。
そんなわけでSTLのアルゴリズムの入門編です。
関数オブジェクトです。コールバック関数のように使えて、
アルゴリズムに渡します。
アルゴリズムにはtransformとかcount_ifとかremove_ifとかequalとかいろいろあります。
関数オブジェクトの定義はoperator()が定義(オーバーロード)されているオブジェクトのことです。
今回は1つの引数を受け取る単項関数オブジェクトをやってみます。
C++11以前は単項関数オブジェクトを作るのに、
unary_functionというものを継承するということがあったみたいですが、
非推奨になったみたいです。継承なんかメンドクセなひとが多かったのでしょうか(笑)

transform関数を使いました。詳細はここに書いてあります。
transform - C++ Reference
あと調子に乗ってラムダ式というのも使っています。
ラムダ式 - C++入門

ソースコード


実行結果

1 2 Fizz 4 5 Fizz 7 8 Fizz 10 11 Fizz 13 14 Fizz 16 17 Fizz 19 20 Fizz 22 23 Fizz 25 26 Fizz 28 29 Fizz

なんかこのあたりかなり勉強すればいろいろ楽ができそう。
世界のナベアツさんって名前変えましたよね。そういえば。

第2回はこちら↓

こっちのほうがよっぽど第1回っぽい。