繰り返し処理

[C++] while文とcinを組み合わせて複数行入力を行う方法

C++でwhile文とcinを組み合わせて複数行入力を処理する方法は、入力が終了する条件を指定しながらループを回す手法です。 一般的には、標準入力が終了する(EOF)までデータを読み取る方法が用いられます。 例えば、while (cin &

続きを読む »
文字列

[C++] stringstreamに改行を含める方法

C++のstringstreamに改行を含めるには、改行文字\nや標準ライブラリのstd::endlを使用します。 例えば、sstream << "行1\n行2";やsstream << "行1" <<

続きを読む »
繰り返し処理

[C++] while文におけるbreak文の使い方を初心者向けに解説

C++のwhile文でbreak文は、ループを途中で終了させるために使用します。 通常、while文は条件がtrueの間繰り返し実行されますが、break文を使うと条件に関係なく即座にループを抜けます。 例えば、特定の条件を満たしたときにル

続きを読む »
アルゴリズム

[C++] upper_bound()の使い方 – ニ分探索/lower_boundとの違い

upper_bound()は、ソートされた範囲で指定した値より「大きい」最初の要素の位置を返すC++標準ライブラリの関数です。 一方、lower_bound()は指定した値「以上」の最初の要素の位置を返します。 両者とも二分探索を用いており

続きを読む »
構造体

[C++] 構造体を持つvectorをコピーする方法と注意点

C++で構造体を持つstd::vectorをコピーするには、=演算子やコンストラクタを使用します。 std::vectorはデフォルトでディープコピーを行うため、構造体の各要素が新しいvectorに複製されます。 ただし、構造体内にポインタ

続きを読む »
アルゴリズム

[C++] unique()の使い方 – 重複要素の削除

C++のstd::uniqueは、連続する重複要素を削除するためのアルゴリズムです。 ただし、完全に削除するわけではなく、重複しない要素を先頭に移動し、その後ろに不要な要素が残る形になります。 使用するには、ソート済みの範囲に適用する必要が

続きを読む »
vector

[C++] vector::insert()の使い方 – 指定した位置に要素を追加する

C++のvector::insert()は、指定した位置に要素を挿入するメンバ関数です。 挿入位置はイテレータで指定し、既存の要素は後方にシフトされます。 1つの要素を挿入する場合、insert(pos, value)を使用します。 また、

続きを読む »
vector

[C++] vector::end()の使い方 – 末尾の次の参照を取得する

C++のvector::end()は、std::vectorの末尾の次の要素を指すイテレータを返します。 このイテレータは実際の要素を指していないため、アクセスすると未定義動作になります。 主に範囲ベースのループや、begin()との組み合

続きを読む »
vector

[C++] vector::empty()の使い方 – 要素数が0か判定する

C++のvector::empty()は、std::vectorが空であるかを判定するメンバ関数です。 この関数は、ベクター内の要素数が0の場合にtrueを返し、1つ以上の要素がある場合はfalseを返します。 例えば、if (vec.em

続きを読む »
vector

[C++] vector::clear()の使い方 – 要素を全て削除する

vector::clear()は、C++標準ライブラリのstd::vectorクラスで使用されるメンバ関数で、ベクター内の全ての要素を削除します。 この関数を呼び出すと、ベクターのサイズは0になりますが、容量(capacity)は変更されま

続きを読む »
vector

[C++] vector::begin()の使い方 – 先頭要素の参照を取得する

C++のvector::begin()は、std::vectorの先頭要素を指すイテレータを返します。 このイテレータを使用して、要素へのアクセスや操作が可能です。 例えば、*vec.begin()で先頭要素の値を取得できます。 begin

続きを読む »
vector

[C++] vector::back()の使い方 – 末尾要素の参照を取得する

vector::back()は、C++のSTLコンテナであるstd::vectorにおいて、末尾要素への参照を取得するためのメンバ関数です。 この関数は、ベクターが空でない場合に使用可能で、末尾要素を直接操作したり値を取得したりする際に便利

続きを読む »
条件分岐

[C++] switch文での変数宣言はスコープを応用する必要がある

C++のswitch文内で変数を宣言する際、スコープの扱いに注意が必要です。 switch文ではcaseラベルが同じスコープ内に属するため、複数のcaseで同じ名前の変数を宣言するとエラーになります。 これを回避するには、ブロック({})を

続きを読む »
vector

[C++] vector::at()の使い方 – 要素アクセス

C++のvector::at()は、std::vector内の指定した位置にある要素への安全なアクセスを提供するメンバー関数です。 インデックスを引数として渡し、その位置の要素を返します。 範囲外のインデックスを指定すると、std::out

続きを読む »
条件分岐

[C++] switch文を文字列で分岐させることができないワケ

C++のswitch文は、整数型や列挙型などの定数式に基づいて分岐を行いますが、文字列(std::stringやC文字列)はサポートされていません。 これは、switch文がコンパイル時に評価可能な定数値を必要とするためです。 一方、文字列

続きを読む »
条件分岐

[C++] switch文で複数条件分岐する方法

C++のswitch文は、特定の変数の値に基づいて複数の条件分岐を行う制御構文です。 switch文では整数型や列挙型などの値を評価し、対応するcaseラベルに基づいて処理を実行します。 caseラベルは一意でなければならず、複数の条件をま

続きを読む »
条件分岐

[C++] switch文を使わないほうがいいケースを紹介

C++でswitch文を使わないほうがいいケースは、条件が複雑で可読性が低下する場合や、動的な値に基づく処理が必要な場合です。 例えば、条件が範囲や複数の値に依存する場合、if-else文や関数ポインタ、std::mapなどを使う方が柔軟で

続きを読む »
条件分岐

[C++] switch文の中でreturnを書くとどうなるのか解説

C++のswitch文内でreturnを使用すると、現在の関数の実行が即座に終了し、呼び出し元に制御が戻ります。 returnはswitch文の外側の制御構造に影響を与えないため、switch文の中で特定の条件に応じて関数を終了させたい場合

続きを読む »
アルゴリズム

[C++] transform()の使い方 – 全要素に関数を適用する

C++のstd::transform()は、コンテナの全要素に指定した関数を適用し、結果を別のコンテナに格納するアルゴリズムです。 2つの形式があり、1つ目は単一の入力範囲に関数を適用するもの、2つ目は2つの入力範囲を組み合わせて関数を適用

続きを読む »
Back to top button