|
STL標準講座―標準テンプレートライブラリを利用したC++プログラミング
のような STL の入門書を読んで STL の概要をつかんだら、本書に進むことを目標にしましょう。
STL を効果的に使うための方法が 50 個のルールに整理されており、その一つ一つを説明、検証してあります。
例えば簡単な例で言えば次のようなものがあります。
size() で 0 を調べる代わりに empty を呼び出そう
任意のコンテナ c に対し、次のように書くことは・・・
if( c.size() == 0 ) ...
・・・次のように書くことと本質的に変らない。
if( c.empty() ) ...
(中略)
empty を使った構文の方が望ましい理由は単純である。empty は全ての標準コンテナに対して定数時間処理だが、
size の場合、一部の list の実装には線形時間がかかる。
著者はこれに対して全ての標準コンテナに対して、定数時間処理の size を実装することの難しさを説き、
表題のルール (size() == 0 の代わりに empty を常に使っておけばよい) の根拠を示しています。
コンピュータ・サイエンスの基礎がないと読み解くのは難しいですが、読む価値のある一冊です。
|