C++のdiv()関数とは?使い方とサンプルコードを解説
C++のdiv()関数の概要
C/C++の標準ライブラリ関数 div_t div(int numer, int denom) は、第1引数 numer(分子)を第2引数 denom(分母)で割り算し、商と余りを同時に求めることができる便利な関数です。通常の除算演算子では商と余りを別々に計算する必要がありますが、div()関数を使えば1回の呼び出しで両方の結果を取得できます。
関数の宣言
div_t div(int numer, int denom)
パラメータ
- numer: 割り算の分子(被除数)
- denom: 割り算の分母(除数)
戻り値
この関数は、ヘッダーファイル <cstdlib> で定義されている構造体 div_t を返します。div_t構造体には以下の2つのメンバーが含まれています。
int quot; // 商 int rem; // 余り
使用例
以下は、div()関数を使って27を4と3で割った場合の商と余りを求めるサンプルプログラムです。
#include <iostream>
#include <cstdlib>
using namespace std;
int main () {
div_t output;
output = div(27, 4);
cout << "Quotient part of (27/4) = " << output.quot << endl;
cout << "Remainder part of (27/4) = " << output.rem << endl;
output = div(27, 3);
cout << "Quotient part of (27/3) = " << output.quot << endl;
cout << "Remainder part of (27/3) = " << output.rem << endl;
return(0);
}実行結果
Quotient part of (27/4) = 6 Remainder part of (27/4) = 3 Quotient part of (27/3) = 9 Remainder part of (27/3) = 0
まとめ
div()関数を使用することで、整数除算の商と余りを効率的に同時取得できます。特に、商と余りの両方が必要な処理において、コードの可読性向上や計算処理の効率化に役立ちます。なお、long型用には ldiv()、long long型用には lldiv() といった類似の関数も用意されていますので、扱うデータ型に応じて使い分けるとよいでしょう。
-
C++の純粋関数とは?特徴とstrlen()・sqrt()を使った実装例をわかりやすく解説
純粋関数(Pure Function)とは、同じ引数の値に対して常に同じ結果を返す関数のことです。純粋関数は結果を返すだけにとどまり、引数の変更、入出力ストリームへのアクセス、出力生成といった余計な副作用(Side Effect)を一切持ちません。この性質により、純粋関数はプログラムの動作が予測しやすく、テストやデバッグ、並列処理においても扱いやすいという大きなメリットがあります。純粋関数と非純粋関数の例C++標準ライブラリには、純粋関数として振る舞うものが多数存在します。代表的な例としては以下のような関数が挙げられます。純粋関数の例: sin()、strlen()、sqrt()、max()、
-
C++のswap()関数とは?2つの変数の値を入れ替える方法をサンプルコード付きで解説
swap()関数とは C++のswap()関数は、2つの値を入れ替える(交換する)ための関数です。この関数を利用すれば、一時的な第三の変数を自分で用意することなく、2つの変数の値を簡単に入れ替えることができます。 swap()関数の構文 void swap(int variable_name1, int variable_name2); 変数に値を代入してswap()関数に渡した場合、関数内では値の入れ替えが行われますが、呼び出し元の実際の変数の値は変わりません。これは、引数が「値渡し」で渡されるためです。実際の変数の値を入れ替えたい場合は、後述する「参照渡し」を使用します。 例1:s