C++書籍一覧11

|   一覧10へ   |   書籍一覧目次へ   |    トップページへ   |   一覧12へ   |

BD10219_.GIF (978 バイト)

 

Amazon.co.jpで購入する

C++書籍一覧の目次へ




Standard Template Libraryプログラミング

ISBN4-87966-861-3  秀和システム

επιστημη(えぴすてーめー) 著

A5  336ページ  本体価格3,200円  1998/12発売

[内容]

STLは、C++標準ライブラリの中でも非常に重要な役割を担っています。その有用性から、今後プログラマの必須となるでしょう。しかしSTLはその有用性の反面、はじめは覚えるのに苦労します。今まではSTLの解説書が皆無でした。本書はプログラマに待ちに待たれていたSTLの解説書です。

[目次]

1 STLとは何か?

  • (コラム)名前空間
  • (コラム)template  

2 Iterator

●イテレータ(Iterator)の分類 

  • [InputIterator]
  • [OutputIterator]
  • [ForwardIterator]
  • [BidirectionalIterator]
  • [RandomAccessIterator]  

●STLが提供するイテレータ 

  • [reverse_iterator]
  • [istream_iterator, ostream_iterator]
  • [insert_iterator, front_insert_iterator, back_insert_iterator]  

●イテレータの作り方

3 Container

  • (コラム)Allocator  

●すべてのコンテナに対してできること 

  • - X u; , X();
  • - X(a);
  • - X u(a);
  • - X u = a;
  • - (&a)->~X();
  • - r = a
  • - a.begin();
  • - a.end();
  • - a == b
  • - a != b
  • - a.swap(b)
  • - a.size()
  • - a.max_size()
  • - a.empty()
  • - a < b
  • - a > b
  • - a <= b
  • - a >= b  

●Reversibleコンテナに対してできること 

  • - a.rbegin()
  • - a.rend()
  • (コラム)計算量 

●順序コンテナ(Sequence Container) 

  • - X(n,t)
  • - X a(n,t);
  • - X(i,j)
  • - X a(i,j)
  • - a.insert(p,t)
  • - a.insert(p,n,t)
  • - a.insert(p,i,j)
  • - a.erase(q)
  • - a.erase(q1,q2)
  • - a.clear()
  • - a.front()
  • - a.back()
  • - a.push_front(t)
  • - a.push_back(t)
  • - a.pop_front()
  • - a.pop_back()
  • - a[n]
  • - a.at(n)
  • 配列をvectorで置き換える
  • [vector]
  • - 挿入
  • - 削除
  • - 参照/検索
  • [list]
  • - 挿入/削除
  • - 削除
  • - 参照/検索
  • [deque]
  • - 挿入/削除
  • - 参照/検索
  • (コラム) Compile-time Polymorphism
  •  

●連想コンテナ(Associative Container) 

  • [set]
  • - 挿入
  • - 削除
  • - 参照/検索
  • [multiset]
  • [map]
  • - 挿入/削除
  • - 検索
  • [multimap]  

●ビット集合 bitset

●コンテナ・アダプタ 

  • [stack]
  • [queue]
  • [priority_queue]  

●コンテナの選択

●値ベースコンテナと参照ベースコンテナ 

  • 参照ベースコンテナの後始末
  • 参照ベースコンテナとauto_ptr
  • 参照ベースset/mapの作り方
  • 参照ベースコンテナでの注意点 

4 Function Object

●演算オブジェクト 

  • - 四則演算
  • - 比較演算
  • - 論理演算 

●関数アダプタ 

  • - 論理値を反転する
  • - 2引数の関数オブジェクトを1引数の関数オブジェクトに変換する
  • - 関数へのポインタを関数オブジェクトに変換する
  • - メンバ関数へのポインタを関数オブジェクトに変換する 

●関数オブジェクトの使い方

●バインダ

●関数ポインタ・アダプタ

●関数オブジェクトの作り方

5 Algorithm

●要素を書き換えない(read-only)操作 

  • - for_each : 操作の適用
  • - find, find_if : 検索
  • - count, count_if : 計数 

 

●要素の追加/削除/変更を伴う操作 

  • - copy : 複写
  • - transform : 変換
  • - replace, replace_if : 置換
  • - fill, fill_n : 充填
  • - remove, remove_if : 削除
  • - unique : 隣接する等しい要素の削除 

 

●ソート(並び替え)およびソートに関連した操作 

  • - sort : ソート
  • - equal_range : 検索
  • - merge : 併合
  • - set_union, set_intersection, set_difference,
  • - set_symmetric_difference : 集合演算
  • - min_element, max_element : 最小値/最大値
  • - next_permutation, prev_permutaion : 順列の生成 

 

●算術アルゴリズム 

  • - accumulate : 積算
  • - inner_product : 内積
  • - adjacent_difference : 隣接要素の差分 

 

●アルゴリズムの作り方 

  • iterator_traits  

6 Idiom

●初期化 

  • 1.コンテナを空にする
  • 2. 同一要素で埋め尽くす 

●コピー 

  • 1. 他のコンテナから全要素をコピーする
  • 2. コンテナ内の全要素を出力する(ストリームへのコピー)  

●検索 

  • 1. 条件を満たす要素がコンテナ内に少なくとも一つあるかを調べる
  • 2. 条件を満たすすべての要素を他のコンテナにコピーする
  • 3. 条件を満たす要素をコンテナから削除する
  • 4. 条件を満たすものと満たさないものとに分類する 

●変換 

  • 1. コンテナ内の要素 x に対し、function(x)の結果からなるコンテナを作る
  • 2. コンテナ内の要素 x をfunction(x)の結果で置き換える
  • 3. 二つのコンテナ内の要素x,yに対し、function(x,y)の結果からなるコンテナを作る 

●ソート 

  • 1. 昇順(小さい順)にソートする
  • 2. 降順(大きい順)にソートする
  • 3. 指定した大小関係に従ってソートする 

7 STLとオブジェクト指向

8 STLの問題点

  • コンパイラからのメッセージが不可解
  • 実行時エラー
  • デバッグが困難
  • 標準C++準拠?
  • 実行サイズの膨張 

Reference

Appendix

 

C++書籍一覧次のページ          C++書籍目次                 トップページ