Amazon.co.jpで購入する
C++書籍一覧の目次へ
|
Standard Template Libraryプログラミング
ISBN4-87966-861-3 秀和システム
επιστημη(えぴすてーめー) 著
A5 336ページ 本体価格3,200円 1998/12発売
[内容]
STLは、C++標準ライブラリの中でも非常に重要な役割を担っています。その有用性から、今後プログラマの必須となるでしょう。しかしSTLはその有用性の反面、はじめは覚えるのに苦労します。今まではSTLの解説書が皆無でした。本書はプログラマに待ちに待たれていたSTLの解説書です。
[目次]
1 STLとは何か?
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
●すべてのコンテナに対してできること
- - 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 : 隣接要素の差分
●アルゴリズムの作り方
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
 |