文字列

[C++] 文字が制御文字かどうか判定する方法 – iscntrl()

C++では、文字が制御文字かどうかを判定するために標準ライブラリ関数iscntrl()を使用します。 この関数は、<cctype>ヘッダーに含まれており、引数として渡された文字が制御文字(ASCIIコード0~31および127)で

続きを読む »
関数

[C++] ラムダ式で再帰処理を実装する方法を解説(ジェネリックラムダ)

C++でラムダ式を用いて再帰処理を実装する場合、ラムダ式自体を再帰的に呼び出すことはできません。 これを解決するために、ラムダ式を引数として受け取る関数を用いる方法があります。 このテクニックは「Yコンビネータ」と呼ばれることもあります。

続きを読む »
数値処理

[C++] 0から2の間の乱数を生成する方法

C++で0から2の間の乱数を生成するには、標準ライブラリの<random>を使用します。 std::mt19937で乱数エンジンを初期化し、std::uniform_int_distributionを用いて範囲を指定します。 例

続きを読む »
ファイル

[C++] 読み書きするファイル名の指定で変数を使う方法を解説

C++でファイルの読み書きを行う際、ファイル名を変数で指定するには、標準ライブラリのstd::ifstreamやstd::ofstreamを使用します。 ファイル名を文字列型(std::stringやCスタイルの文字列)で変数に格納し、その

続きを読む »
ファイル

[C++] ファイル名を変更する方法を解説

C++でファイル名を変更するには、標準ライブラリの関数std::renameを使用します。 この関数は、C言語のrename関数をC++で利用するもので、<cstdio>ヘッダーをインクルードする必要があります。 std::re

続きを読む »
ファイル

[C++] 拡張子を除いたファイル名を取得する方法を解説

C++で拡張子を除いたファイル名を取得するには、文字列操作を行います。 まず、ファイルパスから最後のスラッシュ/または\以降の部分を抽出し、次に最後のドット.以前の部分を取得します。 これには標準ライブラリのstd::stringやstd:

続きを読む »
ファイル

[C++] ファイル名の拡張子だけを変更する方法

C++でファイル名の拡張子を変更するには、文字列操作を用います。 まず、元のファイル名から最後のドット位置を見つけ、そこから拡張子部分を切り取ります。 その後、新しい拡張子を結合します。 標準ライブラリのstd::stringやstd::f

続きを読む »
関数

[C++] ラムダ式の使いどころはいつなのか解説

ラムダ式は、短い無名関数をその場で定義して使用したい場合に便利です。 主な使いどころとして、STLアルゴリズム(例:std::sortやstd::for_each)でカスタム処理を記述する際や、コールバック関数を簡潔に記述したい場合が挙げら

続きを読む »
ファイル

[C++] ファイル名から拡張子を取得する方法

C++でファイル名から拡張子を取得するには、文字列操作を行います。 標準ライブラリのstd::stringを使用する場合、find_last_ofで最後のドット位置を特定し、substrで拡張子部分を切り出します。 例えば、filename

続きを読む »
スレッド

[C++] マルチスレッドにおける例外処理の書き方を解説

C++でマルチスレッド環境における例外処理を行う際、スレッドごとに例外をキャッチし、必要に応じて例外情報を共有する仕組みを設計します。 標準ライブラリのstd::threadやstd::asyncを使用する場合、スレッド内で例外が発生しても

続きを読む »
スレッド

[C++] マルチスレッドでスレッドの戻り値を取得する方法

C++でマルチスレッドのスレッド戻り値を取得するには、標準ライブラリのstd::futureとstd::asyncを使用します。 std::asyncは非同期タスクを実行し、その結果をstd::futureオブジェクトを通じて取得できます。

続きを読む »
スレッド

[C++] std::thread,std::asyncを用いた簡単な非同期処理の書き方

C++で非同期処理を実現するには、std::threadとstd::asyncが利用できます。 std::threadはスレッドを直接管理し、明示的に開始・終了を制御します。 一方、std::asyncは非同期タスクを簡潔に扱え、戻り値をs

続きを読む »
スレッド

[C++] マルチスレッドプログラミング入門 – 排他制御の基礎

マルチスレッドプログラミングでは、複数のスレッドが同時にリソースへアクセスする際、データ競合を防ぐために排他制御が必要です。 C++では、標準ライブラリのstd::mutexを使用して排他制御を実現します。 std::mutexは、スレッド

続きを読む »
スレッド

[C++] マルチスレッドでスレッドセーフな同期処理の書き方

C++でマルチスレッドのスレッドセーフな同期処理を行うには、標準ライブラリの同期機構を活用します。 代表的な方法として、std::mutexを使用してクリティカルセクションを保護する方法があります。 std::lock_guardやstd:

続きを読む »
スレッド

[C++] マルチスレッドでプログラムを高速化する方法

C++でマルチスレッドを活用してプログラムを高速化するには、標準ライブラリのstd::threadやstd::asyncを使用します。 タスクを複数のスレッドに分割し、並列処理を行うことで効率を向上させます。 ただし、スレッド間のデータ競合

続きを読む »
スレッド

[C++] std::threadでスレッドに引数を渡す方法(値渡し/参照渡し/ラムダ式)

C++のstd::threadを使用してスレッドに引数を渡す方法には、値渡し、参照渡し、ラムダ式を用いる方法があります。 値渡しでは引数がコピーされ、スレッド内で使用されます。 参照渡しを行う場合はstd::refを使用して明示的に参照を渡

続きを読む »
数値処理

[C++] 0から100の整数/少数の乱数を生成する方法を解説

C++で0から100の整数や少数の乱数を生成するには、標準ライブラリの<random>を使用します。 整数の場合、std::uniform_int_distributionを、少数の場合、std::uniform_real_di

続きを読む »
スレッド

[C++] マルチスレッド化におけるスレッドセーフなクラスを作成する方法

C++でスレッドセーフなクラスを作成するには、複数のスレッドが同時にアクセスする際のデータ競合を防ぐ必要があります。 一般的な方法として、std::mutexを使用して共有リソースへのアクセスを保護します。 クラス内で共有データを操作するメ

続きを読む »
標準入出力

[C++] フォーマット指定子一覧

C++では、フォーマット指定子は主にC言語由来のprintfやscanfで使用されます。 以下は主な指定子の一覧です。 %dは整数、%fは浮動小数点、%cは文字、%sは文字列、%xは16進数、%oは8進数、%uは符号なし整数、%eは指数表記

続きを読む »
Back to top button