Skip to content

Instantly share code, notes, and snippets.

@laiso
Last active November 13, 2015 12:04
Show Gist options
  • Save laiso/896d57587fd3aafbe62e to your computer and use it in GitHub Desktop.
Save laiso/896d57587fd3aafbe62e to your computer and use it in GitHub Desktop.
目次
はじめに
謝辞
本書の構成
本書の見方
CHAPTER 1 C++とは
C++の歴史と特徴
主な処理系
CHAPTER 2 基本文法
プログラムの例
識別子と文字セット
COLUMN ユニバーサルキャラクタ名とは
予約語と記号
コメント
COLUMN オブジェクトのアドレスを取得するには
cv修飾子
COLUMN const修飾とvolatile修飾の混在
型の別名宣言
COLUMN 複雑な関数ポインタの別名宣言とstd::function
型の自動推論と取得
キャスト
動的な生成と破棄
COLUMN new/deleteとメモリリーク
サイズとアラインメント
COLUMN アラインメントとは?
リテラル
COLUMN 生文字リテラルのデリミター
COLUMN nullptrの型
COLUMN ユーザー定義リテラルをコンパイル時定数にする
右辺値参照とムーブセマンティクス C++11
文(ステートメント)
スコープ
関数
COLUMN 可変長実引数について
クラス
メンバ変数・メンバ関数・メンバ型
継承
COLUMN 仮想関数と非仮想関数の違いと多態性
関数オブジェクト
オーバーロード
テンプレート
定数式 C++11
ラムダ式 C++11
COLUMN ラムダ式の書式の応用
プリプロセッサ
COLUMN 条件付き取り込みで使用される条件式
名前空間
属性 C++11
CHAPTER 3 例外処理
概要
例外クラスを使い分ける
例外を送出しないことを明示する C++11
システムのエラーを扱う
空の例外ポインタを作成する
現在送出されている例外オブジェクトを指し示す例外ポインタを取得する
例外ポインタが指し示している例外オブジェクトを再送出する
例外オブジェクトの例外ポインタを構築する
入れ子例外を作成する
入れ子の例外ポインタを取得する
入れ子の例外オブジェクトを再送出する
入れ子例外を送出する
CHAPTER 4 文字列
概要
文字列オブジェクトを構築する
basic_stringリテラルで構築する C++14
文字列オブジェクトの基本操作
文字列の長さを取得する
文字列を空にする
文字列が空かどうかを判定する
C言語インタフェースとやりとりする
文字列をイテレータを使用して操作する
文字列の一部を取得する
文字列を数値に変換する
数値を文字列に変換する
文字列を検索する
指定した位置の文字列を置換する
正規表現で検索する
正規表現で置換する
正規表現の構文を切り替える
よく使う文字列アルゴリズムの実装と使い方を把握する
CHAPTER 5 入出力
概要
標準出力に書き込む
標準エラー出力に書き込む
標準入力から読み取る
出力の基本
出力の基本(書式なし出力)
整数を出力する
浮動小数点数を出力する
bool 値をtrue/falseで出力する
さまざまな書式で出力する
日付・時刻を出力する
金額書式を出力する
入力の基本
COLUMN 入力ストリームに対するマニピュレータ
入力の基本(書式なし入力)
入力を読み捨てる
1行を読み取る
入力の終わり(EOF)を判定する
日付・時刻を入力する
金額書式を入力する
引用符で囲んで文字列を入出力する
ストリームのエラーを知る
ストリームでのエラー発生時に例外を送出する
ロケールを設定する
COLUMN グローバルロケールとTLS
ワイド文字入出力を扱う
COLUMN wchar_tとUnicode
ファイルを読み書きするストリームを作る
メモリ上で読み書きする文字列ストリームを作る
COLUMN 文字列ストリームのユニコード対応
読み書きする位置を移動する
イテレータでストリームへ出力する(書式化あり)
イテレータでストリームへ出力する(書式化なし)
ファイルの内容をすべて読み込む
COLUMN C++03では,括弧を余計につける必要がある点に注意
自作の型をostreamで出力できるようにする
自作の型をistreamで入力できるようにする
CHAPTER 6 ユーティリティ
乱数を生成する
ポインタを自動的に解放させる(共有方式)
ポインタを自動的に解放させる(専有方式)
型の最大値を取得する
複数の値のうち,最も大きい値を取得する
複数の値のうち,最も小さい値を取得する
複数の値のうち,最も小さい値と最も大きい値を同時に取得する
2つの変数を入れ替える
アサーションを行う
コンパイル時にアサーションを行う
絶対値を求める
浮動小数点数の四捨五入を行う
浮動小数点数の切り上げを行う
浮動小数点数の切り捨てを行う
三角関数(正弦/余弦)を扱う
平方根を求める
数学関数を利用する
実行時型情報を扱う
関数オブジェクトを変数に持つ
時間演算を行う
複素数を扱う
組を扱う
タプルを扱う
システムを終了させる
CHAPTER 7 コンテナとアルゴリズム
コンテナの概要
COLUMN std::vectorについて
イテレータの概要
コンテナオブジェクトを構築する
COLUMN コンテナアダプタで使用するコンテナ型
コンテナに要素を追加する
コンテナの要素を参照する
コンテナの要素数を得る
コンテナのサイズを変更する
コンテナを空にする
コンテナが空かどうか調べる
コンテナの要素すべてに対して指定した処理を行う
コンテナを指定した値で埋める
コンテナの特定要素を置き換える
コンテナの要素を逆順にする
シャッフルする
ソートする
指定した要素の数を数える
要素を検索する
コピーする
コンテナの要素に変更を加えた結果を得る
コンテナの要素を削除する
重複した要素を取り除く
ソート済みか調べる
コンテナの要素が条件を満たすか確認する
コンテナの最大値/最小値を取得する
コンテナの要素を集計した結果を得る
集合演算を行う
順列を作成する
vector/string/arrayをポインタとしてC APIとやりとりさせる
vector/basic_stringのメモリ使用領域をあらかじめ確保する
COLUMN std::vector/std::basic_stringへの要素追加
vector/deque/basic_stringのメモリ使用領域を節約する C++11
COLUMN コンテナのメモリ確保戦略
自分で定義した型を連想コンテナのキーにする
CHAPTER 8 スレッド
概要
スレッドを作成する
引数付きでスレッドを作成する
スレッドの終了を待機する
スレッドの終了を待機可能か判定する
スレッドを手放す
スレッドを識別する
現在のスレッドの処理を明け渡す
現在のスレッドをスリープする
並行実行可能なスレッド数を取得する
スレッドを排他制御する
読み込みが多い状況でスレッドを排他制御する
リソースのロックを管理する
複数のリソースをロックする
ロックせずに排他アクセスをする
COLUMN compare_exchange_strong()とcompare_exchange_weak()
COLUMN アトミック変数は正しく使用することが難しい
スレッドセーフに一度だけ関数を呼び出す
条件変数を使用する
スレッドをまたいで値や例外を受け渡す
非同期処理をする
スレッドローカル変数を使用する C++11
APPENDIX 付録A ライブラリ
APPENDIX 付録B 言語拡張
参考文献・URL
サポート
正誤表
本書の正誤表は以下のURLで公開しています。
https://sites.google.com/site/cpppocketref/eratta/2nd
<!--
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
(2015年6月9日更新)
P.466
std::mutexクラスは、スレッド間で排他的なロックの仕組みを提供するミューテックです。
std::mutexクラスは、スレッド間で排他的なロックの仕組みを提供するミューテックスです。
P.36 16行目(コード内6行目)
b = d;// 参照先は変更できない。bの値がaに代入され、aの値は30になる
b = d;// 参照先は変更できない。dの値がaに代入され、aの値は30になる
@laiso
Copy link
Author

laiso commented Nov 13, 2015

ふえたっぽいところと減ったところ

+COLUMN ユニバーサルキャラクタ名とは
+予約語と記号
+COLUMN 可変長実引数について
+COLUMN 仮想関数と非仮想関数の違いと多態性
+関数オブジェクト
+オーバーロード
+COLUMN ラムダ式の書式の応用
+COLUMN 条件付き取り込みで使用される条件式
+例外を送出しないことを明示する C++11
+システムのエラーを扱う
+basic_stringリテラルで構築する C++14
+引用符で囲んで文字列を入出力する
+ファイルの内容をすべて読み込む
+COLUMN C++03では,括弧を余計につける必要がある点に注意
+COLUMN コンテナアダプタで使用するコンテナ型
+引数付きでスレッドを作成する
+スレッドの終了を待機可能か判定する
+読み込みが多い状況でスレッドを排他制御する


-コラム definedと論理否定
-C言語のstdioとの同期を外す
-C言語の入出力処理に対応するC++の機能を使う
-コラム ヘルパ関数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment