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つの入力範囲を組み合わせて関数を適用

続きを読む »
条件分岐

[C++] switchとifの速度はどっちが速い?同じ?

C++において、switchとifの速度はケースによって異なります。 switchはコンパイラによって最適化されることが多く、条件が連続した整数値の場合、ジャンプテーブルやバイナリサーチを使用して高速化されることがあります。 一方、ifは条

続きを読む »
vector

[C++] vector::size()の使い方 – 要素数を取得する

C++のvector::size()は、std::vectorが保持する要素数を取得するためのメンバ関数です。 この関数は定数時間で実行され、返り値はsize_t型です。 例えば、std::vector<int> v = {1,

続きを読む »
条件分岐

[C++] switch文とenumを組み合わせる応用テクニック

C++でswitch文とenumを組み合わせると、コードの可読性と保守性が向上します。 enumを使うことで、整数値に意味を持たせ、誤入力を防ぐことができます。 switch文では、enumの各値に応じた処理を簡潔に記述可能です。 応用とし

続きを読む »
vector

[C++] vector::push_back()の使い方 – 末尾に要素を追加する

C++のvector::push_back()は、std::vectorの末尾に新しい要素を追加するためのメンバ関数です。 引数として追加したい要素を渡すと、その要素がコピーまたはムーブされてベクタの末尾に挿入されます。 必要に応じて内部の

続きを読む »
条件分岐

[C++] switch文をdefaultなしで記述するとどうなるのか解説

C++のswitch文でdefault節を省略した場合、指定されたcaseラベルに一致する値がない場合は、何も実行されずにswitch文を終了します。 default節は、caseラベルに一致しない場合の処理を記述するためのものであり、省略

続きを読む »
文字型

[C++] vector charとstringを相互に変換する方法

C++でstd::vector<char>とstd::stringを相互に変換する方法は以下の通りです。 std::vector<char>からstd::stringへの変換は、std::stringのコンストラクタ

続きを読む »
vector

[C++] vector::pop_back()の使い方 – 末尾の要素を削除する

C++のvector::pop_back()は、std::vectorの末尾にある要素を削除するメンバー関数です。 この関数は引数を取らず、削除された要素は返されません。 pop_back()を呼び出すと、末尾の要素が破棄され、vector

続きを読む »
条件分岐

C++のswitch文では範囲指定caseは書けない

C++のswitch文では、caseラベルに範囲を直接指定することはできません。 caseラベルには単一の定数式(リテラルや定数)が必要であり、範囲を表す構文はサポートされていません。 そのため、範囲を扱いたい場合はif-else文を使用す

続きを読む »
文字列

[C++] stringstreamとstringの違いや使い分けについて解説

C++のstringstreamとstringは異なる用途を持つクラスです。 stringは文字列を格納・操作するためのクラスで、文字列の結合や部分文字列の取得などが可能です。 一方、stringstreamは文字列をストリームとして扱うク

続きを読む »
文字列

[C++] stringの末尾から検索する方法(後方検索/後方一致)

C++でstd::stringの末尾から検索するには、rfindメソッドを使用します。 rfindは文字列や文字を後方から検索し、最初に一致した位置(先頭からのインデックス)を返します。 一致しない場合はstd::string::nposを

続きを読む »
Back to top button