2010-01-01から1年間の記事一覧

関数分けの効用

通常、プログラムを書くときは、処理をただ順番に書き下すのではなく、いくつかの「関数」に分割します。 これによって各ステップの処理が部品化され、再利用が可能になるわけですが、関数分けの効用はそれだけに留まりません。 例え、たった一度しか実行さ…

構造体によるデータ集約

個人的な観測範囲内での話ですが、「プログラマ」と呼ばれる人の中には、自分で構造体 (あるいはクラス) を定義することを面倒臭がり、これをしないで済ませようとする人が少なくありません。 彼らは、本来構造体として集約されるべきデータをプリミティブ (…

C++の std::unique と、Ruby の Array#uniq の本質的な違い

配列から重複した要素を取り除きたいとき、C++ では STL の std::unique を、Rubyでは Array#uniq を使うことが出来ます。 C++ Ruby #include <iostream> #include <algorithm> int main(){ int v[] = {1, 2, 2, 3, 3, 3}; int len = sizeof(v) / sizeof(v[0]); int *end = std::u</algorithm></iostream>…

32ビット環境で64ビット整数を扱う (乗法編)

これまでの記事では、32ビット環境における64ビットの加法および減法につい...