C++– category –
-
C++
C++ | 処理時間を計測する – std::chrono
C++ にて処理時間を計測する方法を紹介します。標準ライブラリの chrono を利用したプログラム例です。 処理時間の計測 システム時刻は chrono::system_clock::now 関数で取得することができます。戻り値は time_point 型です。 time_point の差分を取得す... -
C++
C++ | 2つの vector から unordered_map を初期化する
C++ での主とした辞書型に unordered_map があります。通常は key/value をセットとしたアイテムから要素を構築すると思います。 この記事では、通常の方式ではなく、 2つの vector (キー用 vector とバリュー用 vector)から unordered_map を構築する例... -
C++
C++ | 自動微分でニュートン法を改善する
以前の記事で C++ でのニュートン法プログラム例を紹介しました。ニュートン法は、方程式を解くための求根アルゴリズムの一種ですが、対象関数の微分式が必要であるという特徴があります。 別の記事で、二重数による自動微分のプログラム例を紹介しました... -
C++
C++ | ニュートン法で方程式を解く
方程式を解くための求根アルゴリズムのひとつにニュートン法があります。\(x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}\) の漸化式を反復的に計算して \(x\) の収束値を算出するアルゴリズムです。 この記事では、C++ でのニュートン法のプログラム例を紹介し... -
C++
C++ | 二重数で自動微分を計算する
関数の微分値を計算する方法はいくつかあります。この記事では、二重数を用いて自動で一次微分を計算する方法を紹介します。 二重数とは、\(a + b\varepsilon\) で表される数値です。ここで \(\varepsilon\) は、二乗すると 0 になる元を表します。 例えば... -
C++
C++ | 二分法 プログラム例
二分法は、数値形跡における求根アルゴリズムのひとつです。反復法によって任意の方程式を解くためのアルゴリズムです。 \(x\) の上限と下限を初期値として、区間を半分ずつ狭めていくことにより、\(f(x) = 0\) を満たすような \(x\) を探索する手法です。... -
C++
C++ | vector を結合する(コピー方式・ムーブ方式)
C++ で vector を結合する方法を紹介します。 コピーで vector を結合する まずは要素のコピーで vector を結合する方法です。vector の要素が次に該当する場合は、この手法を用いるのが良いです。 要素の型が shared_ptr である場合 要素が軽量であり、か... -
C++
C++ | clang-format ベーススタイルの比較(整形後コードの比較)
C++ では、clang-format を利用してソースコードの自動フォーマットが可能です。Visual Studio Code の場合は、C/C++ 拡張機能に clang-format が組み込まれており、Clang_format_fallback Style 項目にてカスタマイズが可能です。 この設定に、"LLVM" や ... -
C++
プログラミング言語のケーススタイルまとめ
大抵のプログラミング言語にはスタイルガイドが定められています。例として、変数名やクラス名などの命名をどのような大文字小文字の組み合わせで記述するか、ということが決められています。大文字小文字のパターンを、~~~ケースと呼称しますが、代表... -
C++
C++ | コレクションとイテレータを自作する
C++11 以降では、 for (auto x : vector) といったモダンな形式で for 文を記述することができます。for 文の右辺には std::vector などのコレクションクラスのインスタンスを指定します。これによって、コレクションの先頭から末尾までを、x の参照でルー...