CMake と Makefile による C++ ビルドの実践ガイド

CMake は Makefile を自動生成し、make コマンドでビルドできるようにするメタビルドシステムです。以下では、CMake の主要変数と基本的な書き方、そして手書き Makefile の最小構成を紹介します。 CMake が提供する代表的なディレクトリ変数 変数名意味 CMAKE_SOURCE_DIR最上位ソースディレクトリ CMAKE_CURRENT_SOURCE_DIR現在処理中のソースディレクトリ(サブプロジ ...

7月2日 18:06 投稿

C++による基本プログラミング問題の解法

問題 1000: 2つの整数の合計 問題概要 2つの整数 a と b を読み込み、それらの合計を出力してください。 C++ コード例 #include <iostream> // 標準入出力ライブラリをインクルード int main() { int value1, value2; // 2つの整数値を格納する変数を宣言 // 標準入力から2つの整数値を読み込む std::cin >> value1 >> value2; // 読み込んだ2つ ...

7月2日 17:38 投稿

C++でのファイルI/Oとデータソートの実験

タスク1:コンテスト参加者データの処理 このタスクでは、コンテスト参加者の情報を含むファイルを読み込み、特定のルールでソートし、結果を表示および保存するプログラムを作成します。 1. ソースコード (1) participant.hpp #pragma once #include <iomanip> #include <iosfwd> #include <string> struct Participant { long student_id; ...

7月2日 17:16 投稿

配列の昇順ソートを実現するための基本的なソートアルゴリズム

一般的なソートアルゴリズムについて、それぞれの動作原理と実装例を紹介します。 挿入ソート 挿入ソートは、すでにソート済みの部分列に新しい要素を適切な位置に挿入していく手法です。 具体的には、未処理の各要素を既存のソート済み領域と比較し、正しい場所に配置します。 特性: ほぼソート済みのデータに対して非常に効率的。 時間計算量: O(N^2)。 空間計算量: O( ...

7月2日 16:09 投稿

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

一、クラスの定義 1、クラス定義の形式 クラスはC言語の構造体に似ていますが、機能がより豊富です。 classがクラスを定義するキーワードで、その後にクラス名が続き、{}内がクラス本体です。クラス定義の終わりにセミコロンを省略することはできません(C言語の構造体と同様)。クラス本体の内容はクラスのメンバと呼ばれます:クラス内の変数はクラスの属性またはメンバ ...

7月1日 21:38 投稿

C++におけるファクトリーパターンと抽象ファクトリーパターンの実装

ソフトウェア設計において、ファクトリーパターンと抽象ファクトリーパターンはオブジェクト生成をカプセル化する重要なクリエーショナルパターンです。これらはクライアントコードからオブジェクト生成ロジックを隠蔽し、システムの拡張性を向上させます。 ファクトリーパターン オブジェクト生成インターフェイスを定義し、具象クラスのインスタンス化をサブクラスに委 ...

7月1日 19:45 投稿

C++におけるクラスとオブジェクトの基本

クラスは、データ(属性)とそのデータを操作する関数(メソッド)を一つの単位としてまとめる仕組みです。この統合により、現実世界の概念をコード上で自然に表現できます。 アクセス制御 メンバーには public、private、protected のアクセス修飾子を指定でき、外部からのアクセス範囲を制御します。friend 宣言された関数やクラスは、private や protected メンバーに ...

7月1日 19:34 投稿

AtCoder Beginner Contest 357 における A から D 問題の解法解説

問題A: Sanitizer N人の人が順番に手を消毒します。各人が必要とする消毒液の量 $H_i$ が与えられ、合計 $M$ 単位の消毒液があるとき、何人目までが完全に手を消毒できるかを求める問題です。 実装としては、配列に格納された各 $H_i$ を順に累積し、その合計が $M$ を超えた時点のインデックスを確認します。累積和が $M$ を超えない場合は、全員が消毒可能です。 #inclu ...

7月1日 16:24 投稿

中缀表达式から後置記法への変換アルゴリズムと括弧の整合性検証

中置記法から後置記法への変換 数式をプログラムで評価する際、中置記法(infix notation)を後置記法(postfix notation、逆ポーランド記法)に変換することが一般的である。この変換はスタックを用いたアルゴリズムにより実現され、以下の特徴を持つ: 入力式の括弧が正しく対応している必要がある。 演算子の優先順位に基づいて変換が行われる。 出力される後置 ...

6月30日 22:54 投稿

InsightFaceへの貢献ガイド:バグ修正から新機能開発まで

InsightFaceへの貢献ガイド:バグ修正から新機能開発まで InsightFaceは最先端の2Dおよび3D顔分析プロジェクトであり、強力な顔認識、検出、解析能力を提供します。この記事では、問題の発見からPRの提出までのプロセスを通じて、InsightFaceコミュニティにどのように貢献できるかを説明します。 なぜInsightFaceに貢献するのか? InsightFaceプロジェクトは、顔検出、 ...

6月30日 22:40 投稿