読者です 読者をやめる 読者になる 読者になる

48項 常に必要なヘッダーを#includeしよう

常に必要なヘッダーを#includeしよう

コンパイラによって、ヘッダファイルのインクルード関係が違うことがあります。
たとえば、Aでは<vector>が<string>を#includしているが、Bだとしていないなどです。

なので、必要になるであろうヘッダーをすべて#includeしておくようにします。

47項 書き込み専用コードの作成は避けよう

書き込み専用コードの作成は避けよう


STLを使ったコードには多くの関数呼び出しがあるため、複雑なコードになりやすいです。
読みづらい書き込み専用コード(後で読むことを考えていないコード)はコメントをつけるか、分割して読みやすくなるようにします。

46項 アルゴリズムのパラメータとして関数の代わりに関数オブジェクトの使用を考えよう

アルゴリズムのパラメータとして関数の代わりに関数オブジェクトの使用を考えよう

続きを読む

45項 count、find、binary_search、lower_bound、upper_bound、およびequal_rangeの違いを理解しよう

count、find、binary_search、lower_bound、upper_bound、およびequal_rangeの違いを理解しよう

続きを読む

44項 アルゴリズムより同名のメンバ関数を優先して使おう

アルゴリズムより同名のメンバ関数を優先して使おう


連想コンテナのcountやfind、listのremoveなど、アルゴリズムと同名のメンバ関数があるときは、メンバ関数を使うべきです。
理由は、メンバ関数のほうが高速であることと、コンテナとの結びつきが緊密であるからです。

43項 独自に作成したループよりアルゴリズムの呼び出しを優先して使おう

独自に作成したループよりアルゴリズムの呼び出しを優先して使おう


アルゴリズムはループより効率的で、エラーが発生しづらく、単純明快でわかりやすいことが多いです。
なので、独自に作成したループよりアルゴリズムの呼び出しを優先して使うべきです。

42項 less<T>がoperator<を意味することを確認しよう

lessがoperator<を意味することを確認しよう


less<T>は、Tのoperator<を呼び出します。
less<T>の動作を変えると、最小意外性の原則に反するので、動作を変えてはいけません。