第5章 標準ライブラリのアルゴリズムを使う
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第4章では、入力によっていくつかの数値を得て、配列の中で最大の値を発見した。 この章では、今度は標準ライブラリの関数を使って同じことを行う。 また、コードの組織化の仕方についても示す。そうすれば、異なるプログラムで関数を再利用できる。
数字に意味を持たせよう:株価だ。 株価のセットがあれば、最大値や最小値、その他の性質を発見できる。 この本の残りの部分では、株価をシミュレートする方法、ファイルから読み取る方法、小さな取引シミュレーションゲームを作る方法を示す。
複数の数値をベクトルに入れる(再び)
前の章では、数値を配列に入れ、その後ベクターに入れた。
ベクターは可変数の値を格納できるため、多くの人がデフォルトで選ぶ連続コンテナだ。
第4章のコードを再利用しやすいように再構成する。
これまで書いたソースファイルはそれぞれ独自のメイン関数を持っていた。
アプリケーションはメイン関数を一つしか持てないが、複数のソースファイルを含めることはできる。
このセクションでは、拡張子.cppのソースファイルを二つと、拡張子.hのヘッダファイルを一つ書く。
一つのソースファイルには通常のメイン関数を置き、もう一つのソースファイルのコードを使う。このコードは後の章でも再利用する。
ヒント
ベストプラクティスとして、ソースファイルには.cpp拡張子を使うのが良い。必須ではないし、.ccや.cxxなどを使う人もいる。しかし一貫性はコードの構造を明確にする。ヘッダの拡張子も重要ではなく、.h ではなく.hppを使うことが多い。ここではソースファイルに.cpp、ヘッダに.hを使うが、他の慣習も見かけるかもしれない。 これまで見てきたように、標準ライブラリのヘッダには拡張子が付いていない。つまり拡張子がない場合、標準ライブラリを使用していると判断できる。
ヘッダーファイル()に宣言を記述すれば、そのヘッダーをインクルードする他のソースファイルでそれらを利用できる。 使用する関数やオブジェクトをソースファイル内で直接宣言することも可能だ。 しかし、同じ宣言を複数のソースファイルで必要とする場合もある。 各ソースファイル()に同じコードを追加するのは合理的ではない。繰り返しのコードは煩わしく、エラーの原因になりやすい。ヘッダーファイルを使用する方がはるかに良い方法だ。
ヘッダファイルをインクルードすると、そのファイルのコードが#include行の場所にコピーされる。だからコードをコピー&ペーストする必要はない。
#includeは「ヘッダの内容をここにコピーせよ」と言っているようなものだ。図 5-1 のように。
図 5-1. ヘッダのインクルード
新しいファイルを作成し、input.h という名前で保存する。
このファイルで、以前に書いたget_number関数を宣言する。
例 4-11 を振り返り、関数get_number の先頭部分に注目する。
これが関数のシグネチャだ。
この部分だけを使い、セミコロンで終わらせれば、関数を宣言していることになる。つまり、どこかに一致する定義があると言っているのだ。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access