C++ で独自 string クラスを実装する手順

はじめに 本稿では、C++ 標準ライブラリの std::string に似た独自の文字列クラスをゼロから実装する方法を解説します。 標準ライブラリとの混同を避けるため、すべてのコードを MyString という名前空間内に記述します。 メンバ変数 以下の3つのメンバ変数を用います。 char* data_ : 文字列本体(終端 '\0' を含む動的確保領域) size_t len_ : 現在の文字列長( ...

8月3日 22:46 投稿

DPと貪欲法による丑数の計算

丑数とは、2, 3, 5のいずれかの数の積からなる数のことです。 最初、私は深さ優先探索(DFS)と集合(set)を使って解こうとしたが、これは効率的ではありませんでした。代わりに、各丑数を順番に配置したいと考えました。例えば、6の次は8であり、9ではありません。 次の丑数は以下の3つの可能性のうちの最小値になります: prev1 * 2; prev2 * 3; prev3 * 5; ここで、pre ...

8月3日 22:24 投稿

C++でif/elseの地獄から脱出する方法

毎日の英語学習、少しずつ成長: "Without purpose, the days would have ended, as such days always end, in disintegration." 「目標なくして、一日は終わる。それはいつも、バラバラな形で終わる。」 はじめに 以前、羊さん(羊哥)が書いた面白い記事『答应我,别再if/else走天下了可以吗 | CodeSheep 』があり、そこではJava言語を使って列挙型、ファ ...

8月3日 10:15 投稿

UbuntuにおけるMySQLインストールとC言語プログラミング

MySQL 5.7 セットアップ アーカイブファイルの取得 高速ダウンロードのためにaria2を活用します。このツールは複数プロトコルとマルチスレッド Downloads をサポートしています。 sudo apt install aria2 aria2c https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar ダウンロード完了後、アーカイブを展開し ...

8月3日 02:41 投稿

Qtフレームワークを使用したクラシックなスネークゲームの開発プロセスと実践

はじめに スネークゲームは歴史が古く、非常に人気のあるクラシックなコンピュータゲームで、1976年の"Snake Game"にさかのぼることができます。1997年にノキアの携帯電話の内蔵ゲームとして世界的に知られるようになり、そのシンプルな操作と中毒性のあるゲーム性は世界中のプレイヤーから愛されるようになりました。スネークの人気はモバイルプラットフォームでの普及だ ...

8月3日 01:55 投稿

elec-ops-simulation を用いた Ascend プラットフォーム向け電力系統定常状態シミュレーション実装

elec-ops-simulation 概要と活用 elec-ops-simulation は、CANN コミュニティ内の Electrical Engineering SIG によって開発された電力シミュレーション求解演算子ライブラリです。このライブラリは、电网の定常運行条件下における各ノードの電圧、位相角、および各支路(送電線、変圧器)の功率分布を計算する核心ニーズに焦点を当てています。 Huawei Ascend ハードウェ ...

8月2日 22:44 投稿

LeetCode バイウィークリーコンテスト 第111回 解説

問題2824: 目標値より小さい和を持つインデックスペアの数え上げ この問題は、全ての可能なペアを列挙して条件を満たすものをカウントするだけで解決できます。 class Solution { public: int countPairs(vector<int>& values, int target) { int length = values.size(); int result = 0; for(int i = 0; i + 1 < length; i++) { ...

8月2日 18:56 投稿

限定枚数の板による占有区間の最小被覆アルゴリズム

複数の隣接する配置ユニットが一列に連なっている状態を想定する。これらユニットのうち特定の位置には対象物が存在しており、それらの位置を最大 $M$ 枚の連続する板材で覆う必要がある。各板材は任意の長さを指定可能だが、使用できる総数は上限 $M$ に固定されている。すべての存在位置が含まれるように板材を設置した際、板材が占めるユニットの合計数を最小化するため ...

8月1日 11:28 投稿

C++におけるstaticキーワードの詳細解説

C++プログラミングにおいて、staticキーワードは非常に重要な役割を果たします。このキーワードは、変数や関数のストレージ期間(寿命)とリンケージ(可視性)を制御するために使用されます。本稿では、staticキーワードの様々な使用方法と具体的な実装例を詳しく解説します。 1. 関数内の静的ローカル変数 関数内で宣言される静的ローカル変数は、関数の実行中だけでな ...

8月1日 07:11 投稿

C++ クラス構成と動的メモリ管理の実装解説

クラス構成による GUI 模擬 オブジェクト指向設計において、クラス間の関係性を理解するために、コンポジション(構成)を用いた簡易 GUI システムを実装します。ここでは、ボタンクラスをウィンドウクラス内部で管理し、インタフェースの公開範囲(public/private)が設計に与える影響を検討します。 Widget クラスの実装 UI 部品を表す基底となるクラスです。ラベル情報 ...

8月1日 03:38 投稿