TECH PLAY

[改訂第4版]C++ポケットリファレンス

3,278円 (税込)

楽天

[改訂第4版]C++ポケットリファレンス

書籍情報

発売日:

著者/編集:高橋 晶/安藤 敏彦/一戸 優介/楠田 真矢/湯朝 剛介

出版社:技術評論社

発行形態:単行本

書籍説明

内容紹介

「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」という特徴で、困ったときにすぐ役立つ。C++20に対応し、コンセプト、レンジライブラリ、数学定数、カレンダー機能といった新機能や、拡張されたconstexprの機能などを解説。もちろん、現場で使われているC++03からC++17にも対応。信頼と安心の1冊。

目次

はじめに 謝辞 本書の構成 本書の使い方 ■CHAPTER 1 C++とは C++の歴史と特徴 主な処理系 ■CHAPTER 2 基本文法 プログラムの例 識別子 演算子 コメント 型 cv修飾子 型の別名宣言 型の自動推論と取得 構造化束縛(C++17) キャスト 動的な生成と破棄 COLUMN new/deleteとメモリリーク サイズとアライメント COLUMN アライメントとは? リテラル COLUMN 生文字リテラルのデリミター COLUMN nullptrの型 右辺値参照とムーブセマンティクス(C++11) 文(ステートメント) スコープ 関数 COLUMN 可変長実引数について クラス メンバ変数/メンバ関数/メンバ型 継承 COLUMN 仮想関数と非仮想関数の違いと多態性 関数オブジェクト オーバーロード テンプレート 定数式(C++11) ラムダ式(C++11) COLUMN ラムダ式の書式の応用 プリプロセッサ COLUMN 条件付き取り込みで使用される条件式 名前空間 属性(C++11) ■CHAPTER 3 エラーハンドリング エラーハンドリングの概要 例外クラスを使い分ける 例外を送出しないことを明示する(C++11) システムのエラーを扱う 例外を持ち運ぶ 関数の失敗を無効な値として表す アサーションを行う コンパイル時にアサーションを行う(C++11) システムを終了させる ■CHAPTER 4 文字列 概要 文字列オブジェクトを構築する basic_stringリテラルで構築する(C++14) 文字列オブジェクトの基本操作 文字列の長さを取得する 文字列を空にする 文字列が空かどうかを判定する C言語インタフェースとやりとりする 文字列をイテレータを使用して操作する 文字列の一部を取得する 文字列を数値に変換する 数値を文字列に変換する 文字列を検索する 先頭・終端が特定の文字列であることを判定する 効率的な文字列検索アルゴリズムを使う 正規表現で検索する 正規表現で置換する 低いコストで文字列を受け取る 値を書式指定で文字列化する ■CHAPTER 5 入出力 概要 標準出力に書き込む 標準エラー出力に書き込む 標準入力から読み取る 出力の基本 入力の基本 1行を読み取る ストリームのエラーを知る 入力の終わり(EOF)を判定する ファイルを読み書きするストリームを作る メモリ上で読み書きする文字列ストリームを作る COLUMN 文字列ストリームのユニコード対応 読み書きする位置を移動する ファイルの内容をすべて読み込む 自作の型をostreamで出力できるようにする 自作の型をistreamで入力できるようにする パスを扱うオブジェクトを構築する ファイルシステム関数のエラーを扱う ファイルやディレクトリをコピーする ファイルやディレクトリの名前を変更する ファイルやディレクトリを削除する ディレクトリを作成する ディレクトリ内のファイルを列挙する ファイル/ディレクトリが存在するか確認する ファイルサイズを取得する 現在の作業ディレクトリを取得/変更する 相対パスを絶対パスに変換する パスからファイル名を取得する パスから拡張子を取得する パスから拡張子を除いたファイル名を取得する ■CHAPTER 6 ユーティリティ 乱数を生成する ポインタを自動的に解放させる(共有方式) ポインタを自動的に解放させる(専有方式) オブジェクトの生死を監視する 型の最大値を取得する 複数の値のうち、最も大きい値を取得する 複数の値のうち、最も小さい値を取得する 値を範囲内に丸める 2つの変数を入れ替える 絶対値を求める 浮動小数点数を近い整数に丸める 浮動小数点数の切り上げを行う 浮動小数点数の切り捨てを行う 三角関数(正弦/余弦)を扱う 平方根を求める 累乗を求める 指数関数と対数関数を計算する 実行時型情報を扱う 関数オブジェクトを変数に持つ 時間演算を行う 複素数を扱う ペアを扱う タプルを扱う 継承関係にない複数の型を、1つのオブジェクトに代入する(静的) 継承関係にない複数の型を、1つのオブジェクトに代入する(動的) 2つの数値の間の値を得る ビット演算を行う ■CHAPTER 7 コンテナとアルゴリズム コンテナとアルゴリズムの概要 各コンテナの紹介 COLUMN std::vectorについて COLUMN コンテナの構築時にクラステンプレートの型推論を利用する(C++17) イテレータの概要 レンジの概要(C++20) コンテナオブジェクトを構築する COLUMN コンテナアダプタで使用するコンテナ型 コンテナに要素を追加する 挿入イテレータを使用する コンテナの要素を参照する コンテナの要素数を得る コンテナのサイズを変更する コンテナを空にする コンテナが空かどうか調べる コンテナの要素すべてに対して指定した処理を行う コンテナを指定した値で埋める コンテナの特定要素を置き換える コンテナの要素を逆順にする シャッフルする ソートする 指定した要素の数を数える 要素を検索する コンテナの要素に変更を加えた結果を得る コンテナの要素を削除する 重複した要素を取り除く コンテナの要素が条件を満たすか確認する コンテナの最大値/最小値を取得する コンテナの要素を集計した結果を得る 集合演算を行う 順列を作成する コンテナの先頭要素を指すポインタを取得する 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) 並列アルゴリズムを使用する(C++17) ■APPENDIX 付録A ライブラリ ■APPENDIX 付録B 言語拡張 ■APPENDIX 付録C 開発環境 参考文献・URL 索引

著者情報

一戸 優介

● 一戸優介(いちのへ ゆうすけ)株式会社オプティム所属。Microsoft MVP for Visual C++受賞(2015年)。学生の頃にWindowsアプリケーション作成のためActiveBasicに次いでC++を学び、その甲斐あってか、現職でも主にC++でアプリケーションを作成する役を任される。プライベートでもC++を使い、ブログや勉強会などで情報を発信し、少しでもC++の情報が充実すればと微力ながら努力している。C++を始めたきっかけは「猫でもわかる……」のWeb サイトでC言語編の次にC++編が並んでいたことから。【著書】『プログラミングの魔導書 Vol.1』(ロングゲート)

一戸, 優介

安藤 敏彦

● 安藤敏彦(あんどう としひこ)フリープログラマ。初めてのC++との出会いは(たぶん)Borland C++。プログラミングのコミュニティやインターネット上で知り合ったC++のエキスパートたちに刺激を受け、それ以前よりC++への興味がさらに増した。その縁もあってこれまでに『C++ テンプレートテクニック』『ストラウストラップのプログラミング入門』のレビュワーとして、C++に関する書籍と関わってきた。長く組込系でCやC++を使用していたが、紆余曲折を経て現在はPHPerになった。現在でも、気になることがあるとWandboxなどで短いC++コードを書いている。

安藤, 敏彦

楠田 真矢

● 楠田真矢(くすだ まさや)会社員、プログラマー。主な業務はC++を用いてのネットワークシステムに関するサーバーソフトウェア開発、およびScala/Typescriptを用いてのWebアプリケーション開発。学生の頃にゲーム開発を目的としてプログラミングを始めたが、触れるうちにプログラミング自体の楽しさに気付く。

楠田, 真矢

湯朝 剛介

● 湯朝剛介(ゆあさ こうすけ)プログラマのアルバイトでC++を本格的に始めた。初めはC++がよくわからなかったが、共著者やTwitter のC++界隈の人と交流し、その技術に触れるうちに、よりC++らしいコードを書く喜びを知る。Sapporo.cppという札幌のC++コミュニティにも参加し、C++の面白さを広める活動もしていた。最近はほかのプログラミング言語も触りつつ、C++のさらなる進化を楽しみにしている。Microsoft MVP for Visual C++受賞(2015年)。

湯朝, 剛介

高橋 晶

● 高橋 晶(たかはし あきら)Preferred Networks所属。Boost C++ Librariesコントリビュータ。「新しい技術を、より多くのプロジェクトに積極的に取り入れてほしい」という願いから、C++とBoostに関する日本語情報を普及させるために、主にブログやコミュニティWebサイト(boostjp/cpprefjp)で活動している。C++ MIXというオフライン勉強会も主催している。【著書】『C++ テンプレートテクニック』(SB クリエイティブ)、『プログラミングの魔導書 Vol.1 & 3』(ロングゲート)

高橋, 晶

類似書籍