Coding Memorandum

プログラミングに関する備忘録

STL資料

STLの復習を兼ねてSTLのリファレンス資料を纏めてみました。

    Coding Wiki

TopCoder SRMをチャレンジするにあたり,短い時間で効率的にcodeを書くにはSTLを使いこなすことが必須だと感じたので,ここ1,2週間で集中的にSTLの再勉強を行ってみました。

STLのアルゴリズム系は今までほとんど手を付けていなかったので,今回資料を纏めることで色々物にできたと思います。あとは実践で頑張りたいと思います!

上述の資料が他の方へも参考になれば幸いです。
まだ書き足りない事項もありますので,今後充実させていきたいと思っています。

DOSBox

昨日のメガデモの記事を見て懐かしさを感じながら,ひょっとしてDOSのエミュレータ環境ってあるんじゃないの?と思い探してみたところ,DOSBox というソフトを見つけました。

このソフトは昨日のエントリにも書いた Gravis Ultrasound もエミュレートしており,メガデモの実行環境として申し分ない機能を備えています。Windows以外にも,Linux,Mac等をサポートしているようです。

早速,メガデモのコレクションCD-Rを引っ張り出し実行してみました。DOSのメガデモで有名な Second Reality 動かしたところ,何の問題もなく動きました。再現性はかなり高いです。

     2ndReality.png

 

メガデモのアーカイブサイト Hornet は活動を停止したようですが,過去のものの公開は続けているようで,今でも多くのデモをダウンロードすることができます。時間ができたら色々見てみたいと思っています。

メガデモ

Slashdotでメガデモの記事を見つけました。

   ドイツのプログラミングイベントで部門優勝した4KBメガデモが話題

“メガデモ”という単語を久しぶりに見た気がします。

昔は Hornet から数多くのデモをダウンロードし,夢中になっていました。(集めるだけで見ていないものも多数・・・)。当時のデモは Gravis Ultrasound という音源ボードがないと動作しない/音が出ないものが多く,デモを見るためだけにボードを購入するほどの入れ込みようでした。(1~2万程度のボードだったと思います。Sound Blasterが数千円だったので,学生だった私にとっては痛い出費)

さっそく記事のデモを実行してみました。これはすごい!です。4KBでここまでやれるのかぁという感動があります。Youtubeに動画があるそうなのでそちらでもどうぞ。
#最近は動画サイトでデモを見られるんですねぇ。ちょっとしたカルチャーショックを受けます。

Slashdotのコメントにもありましたが,フラクタルを応用しているのでしょうね。
余談ですが,フラクタル地形といえば xmountains を思い出します。これも初めて見たときは衝撃的でした。

TopCoder SRM438

TopCoder SRMに初チャレンジしましたが,結果は惨敗でした・・・
250点,500点問題(DIV2)をsubmitできたのですがchallengeで共に破られ,0点に終わりました。

雰囲気にのまれたのか,凡ミスを連発しました。
250点問題は入力値がソートされていないことに気付かず,20分程度を無駄にし焦りを生みました。
結局,境界条件の特異処理を間違えNG。500点問題はintのオーバーフローでNG。

後で振り返ればすぐに分かるような間違いなのですが,コーディング中はかなり焦っていたのだと思います。出直してきます・・・
#この無念さを次回の糧に!

STL

TopCoder SRM等のアルゴリズム系のコンテストをC++でやっていくにはSTLが必須なわけで,今回のTopCoderへのエントリを機会にしてSTLの復習を始めてみました。

昔はSTLを少しは使っていたのですが,ここ数年の仕事は画像処理や映像Codecが中心のため,STLとは縁遠くなっていました。画像/映像系プログラムは処理効率重視なので,メモリイメージを直接扱わないと処理速度が苦しくなってしまいます。
以前,画像処理系プログラムの試作でSTLを使ってみたことがあるのですが,処理速度が期待値からほど遠くSTLを諦めた経験があります。何事も適材適所が必要ですね。

 STLの再勉強にあたり,次の本を購入しました。

     

私は,Scotto Meyers の名著「Effective C++」,「More Effective C++」でC++を習得したので,この本もずっと読みたいなと思っていました。今回はよいきっかけでした。何かモチベーションがないと積読になってしまうので。

次のページ