C++四冊目

言語の基本を理解できて、オブジェクト指向設計もOK!となったら、次は、基本データ構造を押さえる必要がある。といっても、そんなに考えることは多くない。データの最小単位は組み込み型としてすでに定義されているので、それらをまとめるためのコンテナについて考えるということだ。さらに言うと、実際にはコンテナの使用方法のパターンもそんなに多くなくて、ベクタとハッシュマップが使えれば、たいていの用は済んでしまうものだ(自分の場合)。

ただし、ここは基本になるので、コンテナ(そのあり方自体)は慎重に選定しなければならない。コンテナは、プログラムの可読性と保守性(変更しやすさ)を大きく左右する。

C++には、STLというのがあって、汎用のコンテナやそれを操作するためのアルゴリズム、その他のライブラリを提供している。

一方で、Cの流儀にしたがって、コンテナを自作することも可能だ。これまで、Cでリストやらハッシュマップやらを作ってきた人たちならば、それらのコードをコピーして持ってくるという選択肢もある。実際、STLにはけっこう落とし穴が多いので、いまだに使用を避けている人は多い。

必要以上に技巧に走るのは明らかに良くないとしても、用意されているものを使わないという手もないな。プログラムを作ろうとするとき、僕はいつも、「自分が想定しているプログラムが、最高の可読性を持ち、かつ、ひっきりなしの変更に耐えるようになるためには、どうあれば良いのか」ということを考える。言語に用意されている機能を見ながら、何をどうしたらこの理想に近づけるのか考えてみるのも楽しいことだ。(コードコンプリート的に言うと「言語の中へのプログラミング」というところか。)

STL―標準テンプレートライブラリによるC++プログラミング 第2版

STL―標準テンプレートライブラリによるC++プログラミング 第2版

  • 作者: ディビッド・R.マッサー,アトゥルサイニ,ギルマー・J.ダージ,David R. Musser,Atul Saini,Gillmer J. Derge,滝沢徹,牧野祐子
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2001/12
  • メディア: 単行本
  • 購入: 5人 クリック: 74回
  • この商品を含むブログ (18件) を見る