templateとvector使ってクラスを定義してみた
最近、C++の勉強がてら競技プログラミングの問題を解くことが多くなった。
で、入力や出力の方法が似たようなコードを毎回書いたりしててた時、
「これ、テンプレートとvector使ったクラスで楽できないかな?」
と思い、さっそく書いてみた。
https://wandbox.org/permlink/s2M1OU9128CHuheC
以下、ザクっとコードの解説。
TemplateVectorクラスはテンプレートクラスにvectorコンテナをメンバ変数(この言い回しは正しいのか……?)に使っているね。
で、T Set() と T Show() の二つを使って、Containerに動的に要素を格納したり、出力したりできる。
ちなみに、for(auto&& t : Container) はC++で追加されたfor文の機能を使ってる。
コレ、初めてみたのはyumetodoさんがLINKSのコードをリファクタリングしてた時に見たんだようなぁ。
正直、最初はよくわからんかった。
このクラス使えば、オブジェクトを宣言するときに型を指定することで色んな型の連続するデータを格納&出力ができるねー。