25項 標準以外のハッシュコンテナに慣れよう

標準以外のハッシュコンテナに慣れよう STLには、ハッシュコンテナがありません。(C++11では、unordered_set, unordered_multiset, unordered_map, unordered_multimapが追加されました。) SGI STLやSTLportにはハッシュコンテナが用意されています。

24項 効率を重視するときは、map::operator[]とmap::insertの選択に注意しよう

効率を重視するときは、map::operator[]とmap::insertの選択に注意しよう

23項 連想コンテナをソート済みvectorに置き換えることを考えよう

連想コンテナをソート済みvectorに置き換えることを考えようソート済みvectorが連想コンテナより優れている点は、メモリ使用量が少ないことと参照の空間的局所性が高いことです。 欠点は、常にvectorをソート済みにしておかなくてはならないということです。…

22項 setとmultisetのキーのインプレース変更を避けよう

setとmultisetのキーのインプレース変更を避けよう

21項 等しい値に対して比較関数が常にfalseを返すようにしよう

等しい値に対して比較関数が常にfalseを返すようにしよう

20項 ポインタの連想コンテナに対する比較の種類を指定しよう

ポインタの連想コンテナに対する比較の種類を指定しよう

19項 等価と等値の違いを理解しよう

等価と等値の違いを理解しよう

18項 vector<bool>は使わないようにしよう

vector<bool>は使わないようにしよう

17項 余分な容量を取り除くには、swap技法を使おう

余分な容量を取り除くには、swap技法を使おう 余分な容量(コンテナが確保しているメモリ容量)を取り除くには、下のように書きます。 vector<type>(v).swap(v); まず、"vector(v)"でvectorの一時オブジェクトを作成します。 このコピーコンストラクタで作られた一時</type>…

16項 vectorとstringのデータをレガシーAPIに渡す方法を学ぼう

vectorとstringのデータをレガシーAPIに渡す方法を学ぼう

15項 stringの実装の違いに注意しよう

stringの実装の違いに注意しよう stringの実装は、処理系ごとに異なります。参照カウントの有無やstringオブジェクトの大きさの違いなどです。 charの配列よりstringを使うべきですが、高いパフォーマンスが要求される場合は、stringの実装にも目を向ける必…

14項 reserveを使って不必要な割り当てを避けよう

reserveを使って不必要な割り当てを避けよう

13項 動的に割り当てられる配列よりvectorとstringを優先して使おう

動的に割り当てられる配列よりvectorとstringを優先して使おう

12項 STLコンテナのスレッドセーフティに関して現実的な見込みを持とう

STLコンテナのスレッドセーフティに関して現実的な見込みを持とう STLは完全なスレッドセーフではないので、セーフティにするには自分で制御する必要があります。

11項 カスタムアロケータの正しい使い方を理解しよう

カスタムアロケータの正しい使い方を理解しようカスタムアロケータは、コンテナが要素を確保する方法を定義します。 領域確保時、NULLを返したり例外を発生させるなどした時の対策をしておく必要があります。

10項 アロケータの規則と制限に注意しよう

アロケータの規則と制限に注意しよう カスタムアロケータを作るときの注意点です。

09項 消去オプションは注意して選択しよう

消去オプションは注意して選択しよう

08項 auto_ptr型のコンテナを作成することはやめよう

auto_ptr型のコンテナを作成することはやめよう

Efficient C++ 12~16章 まとめ

Efficient C++ 12章から16章の簡単なまとめです。

Efficient C++ 11章 まとめ

Efficient C++ 11章の簡単なまとめです。

Efficient C++ 8~10章 まとめ

Efficient C++ 8章から10章の簡単なまとめです。

07項 newしたポインタのコンテナを使うときは、必ずポインタをdeleteした後にコンテナを破棄しよう

newしたポインタのコンテナを使うときは、必ずポインタをdeleteした後にコンテナを破棄しよう

06項 C++で最も奇妙な解析に注意しよう

C++で最も奇妙な解析に注意しよう

05項 単一要素メンバ関数より範囲メンバ関数を使おう

単一要素メンバ関数より範囲メンバ関数を使おう

04項 size()で0を調べる代わりにemptyを呼びだそう

size()で0を調べる代わりにemptyを呼びだそう一部の実装では、listのsizeが線形時間の処理になっているそうです。 なので、コンテナが空であるかどうかを調べるにはemptyを使うようにします。

03項 コンテナのオブジェクトを正しく効率的にコピーしよう

コンテナのオブジェクトを正しく効率的にコピーしよう コンテナにオブジェクトを追加するとき、オブジェクトのコピーが発生します。 コピーにはコストがかかりますし、基本クラスのコンテナに派生クラスのオブジェクトをコピーすると派生部分が切り落とされ…

02項 コンテナに依存しないコードという幻想に注意しよう

コンテナに依存しないコードという幻想に注意しよう

01項 コンテナは注意して選択しよう

コンテナは注意して選択しようタイトルがすべて、目的にあったコンテナを選ぶべきです。参考書籍Effective STL―STLを効果的に使いこなす50の鉄則作者: スコットメイヤーズ,Scott Meyers,細谷昭出版社/メーカー: ピアソンエデュケーション発売日: 2002/01メデ…

Efficient C++ 6~7章 まとめ

Efficient C++ 6章と7章の簡単なまとめです。

Efficient C++ 1~5章 まとめ

Efficient C++ 1章から5章の簡単なまとめです。