情報構造論の総括
先週には、新しいプログラミングの流れということで、 オブジェクト指向の導入を説明し、大体1年間の話したい内容の座学が終える。 そこで、今日は情報構造論の総括を行った。
配列を扱うプログラムで、固定サイズの配列の欠点を踏まえ、 mallocなどを動的メモリを採用した配列などを説明。 それでも、途中挿入削除が苦手ということでリスト構造が使われることを説明。 その途中データのアクセスがO(N)のシーケンシャルアクセスでは遅いため、 双方向リストや2分木、B木といった方法が取られる….といった総括を行う。
データ構造の動的メモリ管理方式として、参照カウンタ法やガベージコレクタなどを 復習する。その際に、雑談として「人間の睡眠」もガベージコレクタと同じで、 参照中のデータを拾い上げ重要か不要かを判断して、 中期記憶領域・長期記憶領域に移動する処理をしているのが睡眠、 判断処理の際に記憶を思い出す時に夢を見るのでは….といった話も交えてみた。
また、後半ではオブジェクト指向の有効性を復習し、 最近は継承を利用することで「リストというデータ構造をベースに整数のデータを追加した派生クラスを作る」という記述をすることで、 リスト処理のプログラムの記載をライブラリに任せることができるようになってきたことを紹介。
ただし派生による方法(コンテナクラスとか呼ばれる)は、状況によっては効率が悪いので、 テンプレートと呼ばれる手法も増えてきたことを紹介する。