C++クックブック

[cover photo]
TOPICS
クックブック , Programming , C/C++
発行年月日
PRINT LENGTH
520
ISBN
4-87311-303-2
原書
C++ Cookbook
FORMAT
PDF
Ebook
4,730円
Ebookを購入する

プログラミングの際にぶつかる問題のほとんどは、すでに誰かが解決しているものである。どんなプラットフォームを対象としていても、どんなアプリケーションを作成していても、大抵の問題はすでに他のC++プログラマが解いており、それにもかかわらず、問題を一から解決しようとしてしまうことが多くある。本書の目的は、こうした共通する問題に対して、すぐに解法を示すことにある。136集めたレシピは、日付と時刻の解析と計算、文字列とテキストの操作、ファイルの操作、XMLの解析、標準コンテナの使用など、C++全般にわたる。各レシピは問題への解法と、コードで構成されているため、具体的な解決策を知ることができる。

目次

はじめに

1章 C++アプリケーションのビルド
	はじめに
	レシピ1.1 GCCの取得とインストール
	レシピ1.2 コマンドラインからの「Hello, World」アプリケーションのビルド
	レシピ1.3 コマンドラインからの静的ライブラリのビルド
	レシピ1.4 コマンドラインからの動的ライブラリのビルド
	レシピ1.5 コマンドラインからの複雑なアプリケーションのビルド
	レシピ1.6 Boost.Buildのインストール
	レシピ1.7 Boost.Buildによる「Hello, World」アプリケーションのビルド
	レシピ1.8 Boost.Buildによる静的ライブラリのビルド
	レシピ1.9 Boost.Buildによる動的ライブラリのビルド
	レシピ1.10 Boost.Buildによる複雑なアプリケーションのビルド
	レシピ1.11 GNU makeの取得
	レシピ1.12 GNU makeによる「Hello, World」アプリケーションのビルド
	レシピ1.13 GNU makeによる静的ライブラリのビルド
	レシピ1.14 GNU makeによる動的ライブラリのビルド
	レシピ1.15 GNU makeによる複雑なアプリケーションのビルド
	レシピ1.16 マクロの定義
	レシピ1.17 デバッグビルドの生成
	レシピ1.18 リリースビルドの生成
	レシピ1.19 ランタイムライブラリの指定
	レシピ1.20 C++規格への準拠
	レシピ1.21 ソースファイルと指定されたライブラリの自動的なリンク
	レシピ1.22 エクスポートされたテンプレートの使用

2章 数値
	はじめに
	レシピ2.1 文字列から数値型への変換
	レシピ2.2 数値から文字列への変換
	レシピ2.3 有効な数値文字列かどうかの評価
	レシピ2.4 浮動小数点数の比較
	レシピ2.5 指数表記の数値が含まれた文字列の変換
	レシピ2.6 数値型と数値型の変換
	レシピ2.7 数値型の最大値と最小値の取得

3章 文字列とテキスト
	はじめに
	レシピ3.1 文字列のパッディング
	レシピ3.2 文字列のトリミング
	レシピ3.3 文字列のシーケンスとしての保存 
	レシピ3.4 文字列の長さの取得
	レシピ3.5 文字列の反転
	レシピ3.6 文字列の分割
	レシピ3.7 文字列のトークン化
	レシピ3.8 文字列シーケンスの結合
	レシピ3.9 文字列での検索
	レシピ3.10 n番目の部分文字列の検索
	レシピ3.11 文字列からの部分文字列の削除
	レシピ3.12 文字列の大文字と小文字の変換
	レシピ3.13 大文字と小文字を区別しない文字列の比較
	レシピ3.14 大文字と小文字を区別しない文字列の検索
	レシピ3.15 テキストファイルでのタブとスペースの変換
	レシピ3.16 テキストファイルでの行の折り返し
	レシピ3.17 テキストファイルの文字、単語、行のカウント
	レシピ3.18 テキストファイルでの同一単語のカウント
	レシピ3.19 テキストファイルへの余白の追加
	レシピ3.20 テキストファイルの端揃え
	レシピ3.21 テキストファイルでのホワイトスペースの置き換え
	レシピ3.22 テキストのオートコレクト
	レシピ3.23 コンマ区切りのテキストファイルの読み取り
	レシピ3.24 正規表現による文字列の分割

4章 日付と時刻
	はじめに
	レシピ4.1 現在の日付と時刻の取得
	レシピ4.2 日時から文字列への変換
	レシピ4.3 日付と時刻の計算
	レシピ4.4 タイムゾーン間の変換
	レシピ4.5 通年日の割り出し
	レシピ4.6 制約付きの値型の定義

5章 コンテナによるデータの管理
	はじめに
	レシピ5.1 vectorの使用
	レシピ5.2 vectorの効率的な使用
	レシピ5.3 vectorのコピー
	レシピ5.4 vectorへのポインタの格納
	レシピ5.5 listへのオブジェクトの格納
	レシピ5.6 文字列のマッピング
	レシピ5.7 ハッシュコンテナの使用
	レシピ5.8 ソート順でのオブジェクトの格納
	レシピ5.9 コンテナへのコンテナの格納

6章 アルゴリズム
	はじめに
	レシピ6.1 コンテナの反復
	レシピ6.2 コンテナからのオブジェクトの削除
	レシピ6.3 データのランダムシャッフル
	レシピ6.4 範囲の比較
	レシピ6.5 データのマージ
	レシピ6.6 範囲のソート
	レシピ6.7 範囲の分割
	レシピ6.8 シーケンスでの集合演算
	レシピ6.9 シーケンスの要素の変換
	レシピ6.10 新しいアルゴリズムの作成
	レシピ6.11 範囲からストリームへの出力

7章 クラス
	はじめに
	レシピ7.1 クラスのメンバ変数の初期化
	レシピ7.2 関数でのオブジェクトの生成(Factoryパターン)
	レシピ7.3 コンストラクタとデストラクタによるリソースの管理(RAII)
	レシピ7.4 コンテナへの新しいクラスインスタンスの自動的な追加
	レシピ7.5 単一のメンバ変数の共有
	レシピ7.6 実行時の型の割り出し
	レシピ7.7 クラスの継承関係の割り出し
	レシピ7.8 クラスインスタンスへの一意なIDの割り当て
	レシピ7.9 シングルトンクラスの作成
	レシピ7.10 抽象基底クラスによるインターフェイスの作成
	レシピ7.11 クラステンプレートの作成
	レシピ7.12 メンバ関数テンプレートの作成
	レシピ7.13 インクリメント演算子とデクリメント演算子のオーバーロード
	レシピ7.14 算術演算子と代入演算子のオーバーロード
	レシピ7.15 スーパークラスの仮想関数の呼び出し

8章 例外と安全性
	はじめに
	レシピ8.1 例外クラスの作成
	レシピ8.2 例外セーフなコンストラクタの作成
	レシピ8.3 例外セーフなイニシャライザリストの作成
	レシピ8.4 例外セーフなメンバ関数の作成
	レシピ8.5 オブジェクトの安全なコピー

9章 ストリームとファイル
	はじめに
	レシピ9.1 テキスト出力の整列
	レシピ9.2 浮動小数点数の出力のフォーマット
	レシピ9.3 カスタムマニピュレータの作成
	レシピ9.4 ストリームへの書き込みが可能なクラスの作成
	レシピ9.5 ストリームからの読み取りが可能なクラスの作成
	レシピ9.6 ファイルに関する情報の取得
	レシピ9.7 ファイルのコピー
	レシピ9.8 ファイルの削除または名前変更
	レシピ9.9 一時的なファイル名とファイルの作成
	レシピ9.10 ディレクトリの作成
	レシピ9.11 ディレクトリの削除
	レシピ9.12 ディレクトリの内容の読み取り
	レシピ9.13 文字列からのファイル拡張子の抽出
	レシピ9.14 完全パスからのファイル名の抽出
	レシピ9.15 完全パスとファイル名からのパスの抽出
	レシピ9.16 ファイル拡張子の置き換え
	レシピ9.17 2つのパスの結合

10章 マルチスレッド
	はじめに
	レシピ10.1 スレッドの生成
	レシピ10.2 スレッドセーフなリソースの作成
	レシピ10.3 スレッド間の通知
	レシピ10.4 共有リソースの初期化は一度
	レシピ10.5 スレッド関数への引数渡し

11章 XML
	はじめに
	レシピ11.1 単純なXMLドキュメントの解析
	レシピ11.2 Xerces文字列の操作
	レシピ11.3 複雑なXMLドキュメントの解析
	レシピ11.4 XMLドキュメントの編集
	レシピ11.5 DTDによるXMLドキュメントの検証
	レシピ11.6 スキーマによるXMLドキュメントの検証
	レシピ11.7 XSLTによるXMLドキュメントの変換
	レシピ11.8 XPath式の評価
	レシピ11.9 XMLによるオブジェクトの保存と復元

12章 その他の機能
	はじめに
	レシピ12.1 コールバックとしての関数ポインタの使用
	レシピ12.2 クラスメンバへのポインタの使用
	レシピ12.3 引数を変更しない関数の作成
	レシピ12.4 オブジェクトを変更しないメンバ関数の作成
	レシピ12.5 メンバ関数でない演算子の作成
	レシピ12.6 コンマ区切りの値によるシーケンスの初期化

索引