C++における文字列とコンテナの実用的な操作技法

文字列処理の基本操作 初期化方法: std::string text1; // 空文字列 std::string text2 = "greetings"; // リテラル初期化 std::string text3(text2); // コピー初期化 std::string text4("planet"); // C文字列からの初期化 std::string text5(6, 'x'); // 6個の'x'で構成 長さ取得・アクセス: size_t length ...

6月13日 18:39 投稿

C++におけるsetとmapの基本的な使い方

連想コンテナについて これまでにSTLの一部のコンテナ、例えばvector、list、dequeなどを学んできました。これらのコンテナは線形構造を持つシーケンシャルコンテナと呼ばれます。 では、連想コンテナとシーケンシャルコンテナの違いは何でしょうか? 連想コンテナとは、各要素がキー(key)と値(value)を持つコンテナです。要素が連想コンテナに挿入される際、内部構造は赤 ...

6月3日 23:59 投稿

除算式の整数化判定と効率的な約分アルゴリズム

与えられた除法式 $X_1/X_2/X_3/\dots/X_k$ に対して、括弧を任意の位置に挿入して演算順序を変更した際、その結果が整数になるかどうかを判定する問題を考えます。入力として複数のテストケースが与えられ、各ケースごとに整数化が可能か(YES)そうでないか(NO)を出力する必要があります。ここで、$k$は最大で10,000、各$X_i$は最大で100,000,000の正整数です。 こ ...

6月3日 22:20 投稿

C++を用いた配列操作:最大値除外、平均算出、配列比較の実装手法

最大値と異なる数値の総和を求める 与えられた整数列の中から最大値を特定し、その最大値と一致しない要素のみを抽出して合計を算出するプログラムの実装です。 実装コード #include <iostream> #include <vector> #include <algorithm> int main() { int elementCount; if (!(std::cin >> elementCount)) return 0; std::vector&l ...

5月30日 15:39 投稿

二つのソート済み単方向リストのマージアルゴリズム

二つの非減少順(昇順)に整列された単方向連結リストを、一つの新たなソート済みリストに統合する問題。統合後のリストは、元の二つのリストに含まれるすべてのノードを再利用して構成され、追加のメモリ割り当ては不要である。 核心的なアプローチは以下の通り: - **ダミーノード**(仮想ヘッド)を導入し、新規リストの先頭を一貫して扱えるようにする - 結果リス ...

5月14日 23:26 投稿