内容紹介
100の問題を解いてC++のプログラミングスキルを向上させる!
数学問題から、文字列処理、日付と時刻、並列性、暗号化、ネットワークまで、多岐にわたる100の問題を集め、その解法をC++で示します。ポピュラーで古典的な数学問題から、ファイル操作や計測などの身近で興味のわく魅力的な問題が多数収録されています。あらゆるレベルのC++プログラマはもちろん、これからC++を始める人とっても、C++で何ができるのか、どのように書くのかを実践として学ぶことができます。最新のC++17対応。
目次
詳細目次
日本語版まえがき
まえがき
1章 数学の問題
問題
問題1 3または5で割り切れる正の整数の総和
問題2 最大公約数
問題3 最小公倍数
問題4 与えられた正の整数より小さい最大の素数
問題5 セクシー素数
問題6 過剰数
問題7 友愛数
問題8 アームストロング数
問題9 素因数分解
問題10 グレイコード
問題11 ローマ数字に変換
問題12 最長コラッツ数列
問題13 πの計算
問題14 ISBNの検証
解答
解答1 3または5で割り切れる正の整数の総和
解答2 最大公約数
解答3 最小公倍数
解答4 与えられた正の整数より小さい最大の素数
解答5 セクシー素数
解答6 過剰数
解答7 友愛数
解答8 アームストロング数
解答9 素因数分解
解答10 グレイコード
解答11 ローマ数字に変換
解答12 最長コラッツ数列
解答13 πの計算
解答14 ISBNの検証
2章 言語機能
問題
問題15 IPv4データ型
問題16 範囲内のIPv4アドレスを列挙する
問題17 基本演算を備えた2次元配列を作る
問題18 任意個数の引数を取る最小値関数
問題19 任意個数の要素をコンテナに追加
問題20 コンテナのany, all, none関数
問題21 システムハンドルラッパー
問題22 さまざまな温度単位のリテラル
解答
解答15 IPv4データ型
解答16 範囲内のIPv4アドレスを列挙する
解答17 基本演算を備えた2次元配列を作る
解答18 任意個数の引数を取る最小値関数
解答19 任意個数の要素をコンテナに追加
解答20 コンテナのany, all, none関数
解答21 システムハンドルラッパー
解答22 さまざまな温度単位のリテラル
3章 文字列と正規表現
問題
問題23 バイナリから文字列への変換
問題24 文字列からバイナリへの変換
問題25 英文タイトルのキャピタライズ
問題26 指定した区切り文字で文字列を連結する
問題27 区切り文字集合で文字列をトークンに分割する
問題28 最長回文部分文字列
問題29 ナンバープレートの検証
問題30 URLパーツの抽出
問題31 文字列の日付を変換する
解答
解答23 バイナリから文字列への変換
解答24 文字列からバイナリへの変換
解答25 英文タイトルのキャピタライズ
解答26 指定した区切り文字で文字列を連結する
解答27 区切り文字集合で文字列をトークンに分割する
解答28 最長回文部分文字列
解答29 ナンバープレートの検証
解答30 URLパーツの抽出
解答31 文字列の日付を変換する
4章 ストリームとファイルシステム
問題
問題32 パスカルの三角形
問題33 プロセスのリストを表形式で出力する
問題34 テキストファイルから空行を取り除く
問題35 ディレクトリのサイズを計算する
問題36 指定日付より古いファイルを削除する
問題37 ディレクトリ内で正規表現にマッチするファイルを見つける
問題38 一時ログファイル
解答
解答32 パスカルの三角形
解答33 プロセスのリストを表形式で出力する
解答34 テキストファイルから空行を取り除く
解答35 ディレクトリのサイズを計算する
解答36 指定日付より古いファイルを削除する
解答37 ディレクトリ内で正規表現にマッチするファイルを見つける
解答38 一時ログファイル
5章 日付と時間
問題
問題39 実行時間を測定する関数
問題40 2つの日付間の日数
問題41 曜日
問題42 年間の日と週
問題43 複数のタイムゾーンにおける打ち合わせ時刻
問題44 月間カレンダー
解答
解答39 実行時間を測定する関数
解答40 2つの日付間の日数
解答41 曜日
解答42 年間の日と週
解答43 複数のタイムゾーンにおける打ち合わせ時刻
解答44 月間カレンダー
6章 アルゴリズムとデータ構造
問題
問題45 優先度付きキュー
問題46 リングバッファ
問題47 ダブルバッファ
問題48 要素列の最頻出要素
問題49 テキストヒストグラム
問題50 電話番号のリストをフィルタリング
問題51 電話番号のリストの変換
問題52 文字列の文字の順列を生成
問題53 映画の平均評価
問題54 ペア作成アルゴリズム
問題55 Zipアルゴリズム
問題56 選択アルゴリズム
問題57 ソートアルゴリズム
問題58 ノード間の最短経路
問題59 イタチプログラム
問題60 ライフゲーム
解答
解答45 優先度付きキュー
解答46 リングバッファ
解答47 ダブルバッファ
解答48 要素列の最頻出要素
解答49 テキストヒストグラム
解答50 電話番号のリストをフィルタリング
解答51 電話番号のリストの変換
解答52 文字列の文字の順列を生成
解答53 映画の平均評価
解答54 ペア作成アルゴリズム
解答55 Zipアルゴリズム
解答56 選択アルゴリズム
解答57 ソートアルゴリズム
解答58 ノード間の最短経路
解答59 イタチプログラム
解答60 ライフゲーム
7章 並行処理
問題
問題61 並列変換アルゴリズム
問題62 スレッドを用いた、最小最大要素を求める並列アルゴリズム
問題63 非同期関数を用いた、最小最大要素を求める並列アルゴリズム
問題64 並列ソートアルゴリズム
問題65 コンソールへのスレッドセーフなロギング出力
問題66 カスタマーサービスシステム
解答
解答61 並列変換アルゴリズム
解答62 スレッドを用いた、最小最大要素を求める並列アルゴリズム
解答63 非同期関数を用いた、最小最大要素を求める並列アルゴリズム
解答64 並列ソートアルゴリズム
解答65 コンソールへのスレッドセーフなロギング出力
解答66 カスタマーサービスシステム
8章 デザインパターン
問題
問題67 パスワードの検証
問題68 ランダムなパスワード生成
問題69 社会保障番号の生成
問題70 承認システム
問題71 観察可能なベクトルコンテナ
問題72 値引きした価格を計算
解答
解答67 パスワードの検証
解答68 ランダムなパスワード生成
解答69 社会保障番号の生成
解答70 承認システム
解答71 観察可能なベクトルコンテナ
解答72 値引きした価格を計算
9章 データシリアライゼーション
問題
問題73 データをXMLにシリアライズする、XMLからデータをデシリアライズする
問題74 XPathを使ってXMLからデータを抽出する
問題75 データをJSONにシリアライズする
問題76 JSONからデータをデシリアライズする
問題77 映画のリストをPDFに出力する
問題78 画像を集めてPDFを作る
解答
解答73 データをXMLにシリアライズする、XMLからデータをデシリアライズする
解答74 XPathを使ってXMLからデータを抽出する
解答75 データをJSONにシリアライズする
解答76 JSONからデータをデシリアライズする
解答77 映画のリストをPDFに出力する
解答78 画像を集めてPDFを作る
10章 アーカイブ、画像、データベース
問題
問題79 Zipアーカイブにあるファイルを探し出す
問題80 ファイルをZipアーカイブに圧縮したり、Zipアーカイブからファイルを解凍する
問題81 パスワードを付けて、ファイルをZipアーカイブに圧縮したり、Zipアーカイブからファイルを解凍する
問題82 国旗を表すPNGを作る
問題83 認証用テキスト付きPNG画像を作る
問題84 EAN-13バーコード作成器
問題85 SQLiteデータベースから映画を読み込む
問題86 SQLiteデータベースに映画をトランザクションで挿入する
問題87 SQLiteデータベースで映画の画像を扱う
解答
解答79 Zipアーカイブにあるファイルを探し出す
解答80 ファイルをZipアーカイブに圧縮したり、Zipアーカイブからファイルを解凍する
解答81 パスワードを付けて、ファイルをZipアーカイブに圧縮したり、Zipアーカイブからファイルを解凍する
解答82 国旗を表すPNGを作る
解答83 認証用テキスト付きPNG画像を作る
解答84 EAN-13バーコード作成器
解答85 SQLiteデータベースから映画を読み込む
解答86 SQLiteデータベースに映画をトランザクションで挿入する
解答87 SQLiteデータベースで映画の画像を扱う
11章 暗号
問題
問題88 シーザー暗号
問題89 ヴィジュネル暗号
問題90 base64符号化と復号
問題91 ユーザの資格情報を検証する
問題92 ファイルのハッシュを計算する
問題93 ファイルの暗号化と復号
問題94 ファイル署名
解答
解答88 シーザー暗号
解答89 ヴィジュネル暗号
解答90 base64符号化と復号
解答91 ユーザの資格情報を検証する
解答92 ファイルのハッシュを計算する
解答93 ファイルの暗号化と復号
解答94 ファイル署名
12章 ネットワークとサービス
問題
問題95 ホストのIPアドレスを調べる
問題96 クライアント・サーバFizz-Buzz
問題97 ビットコインの交換レート
問題98 IMAPを使って電子メールを取得
問題99 テキストを任意の指定された言語に翻訳する
問題100 画像内にある顔を検出する
解答
解答95 ホストのIPアドレスを調べる
解答96 クライアント・サーバFizz-Buzz
解答97 ビットコインの交換レート
解答98 IMAPを使って電子メールを取得
解答99 テキストを任意の指定された言語に翻訳する
解答100 画像内にある顔を検出する
付録A 参考文献
A.1 論文等
A.2 ライブラリドキュメント
訳者あとがき
索引
Feedback
皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]
O
続きを見る