C++ 面接問題集:ポインタ、配列、const の基礎

1. for ループと while ループの変換 for 文は while 文に書き換え可能である。同様に do-while 文でも実現できる。条件判定のタイミングが異なるが、制御構造の本質は同じである。C++ ではループ制御の書き換えが容易であり、可読性向上のために適宜選択する。 2. 二次元配列の文字列出力 #include <cstring> #include <cstdio> int main() { char data ...

6月12日 18:56 投稿

Rustのジェネリック型パラメータのデフォルト型と演算子オーバーロード

一、序論 ジェネリック型にデフォルト型を設定する機能は、多くの言語には存在しませんが、TypeScript(おそらく他にもいくつか)には例外があります。 TypeScriptでは以下のように使用できます: class MyClass<T = number> { value: T; constructor(value: T) { this.value = value; } printValue(): void { console.log(`Value i ...

5月28日 19:06 投稿

PyTorch自動微分のリバースモード実装

基礎理論 演算子オーバーロード(OO)とリバースモード自動微分の概念を組み合わせた実装手法について解説する。Pythonを用いてPyTorchのコアメカニズムを再現する。 演算子オーバーロード手法 現代プログラミング言語の多態性を利用し、基本演算子の微分規則をカプセル化する。演算子の再定義により計算グラフを構築し、連鎖律で微分結果を合成する。 利点 実装 ...

5月16日 09:26 投稿

C++での日付クラスの実装(メモ)

これまでにC++のクラスとオブジェクトの基本を学び、日付クラスの一部を例として使用しました。この記事では、小さな日付クラスを実装します。 まず、VSで3つのファイルを作成します: Test.cpp:日付クラスのテスト用ファイル 日常生活では、日付に対して整数日を加算または減算できます。例えば、2004年2月1日に3日を加えると、2004年2月4日になります。同様に減算も可能 ...

5月16日 03:19 投稿

C++クラスとオブジェクトの基本

1. クラスとオブジェクト 1.1 クラスの定義 C++では、classキーワードを使ってクラスを定義する。以下はスタックを表すクラスの例である: #include <iostream> using namespace std; class Stack { private: int* _data; int _index; int _maxSize; public: void push() {} void pop() {} }; // セミコロンが必要 メンバー変数には慣習的に ...

5月15日 14:21 投稿