条件分岐

[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を

続きを読む »
文字列

[C++] stringに文字や文字列を結合する方法を解説

C++のstd::stringでは、文字や文字列を結合するために+演算子やappendメソッドを使用します。 +演算子は簡潔に記述でき、文字列同士や文字との結合が可能です。 一方、appendメソッドは効率的で、文字列や部分文字列を追加でき

続きを読む »
set

[C++] set::find()の使い方 – セットから要素を検索する

C++のset::find()は、std::setコンテナ内で特定の要素を検索するためのメンバ関数です。 引数として検索したい値を渡し、その値がセット内に存在する場合は該当要素へのイテレータを返します。 存在しない場合はset::end()

続きを読む »
文字列

[C++] stringを部分一致で比較する方法 – find/containsメソッド

C++で文字列を部分一致で比較するには、std::stringクラスのfindメソッドやC++20以降で追加されたcontainsメソッドを使用します。 findは検索対象の文字列が見つかった場合、その開始位置を返し、見つからない場合はst

続きを読む »
set

[C++] set::erase()の使い方 – 指定した値を削除する

set::erase()はC++の標準ライブラリで提供されるstd::setコンテナのメンバ関数で、指定した値を削除するために使用されます。 この関数は、削除対象の値を引数として受け取り、削除が成功した場合は1(削除された要素数)を返し、値

続きを読む »
文字列

[C++] std::stringを大文字小文字区別せずに比較する方法を解説

C++でstd::stringを大文字小文字を区別せずに比較するには、文字列を一文字ずつ走査し、std::tolowerやstd::toupperを用いて各文字を変換してから比較します。 std::transformを使って両方の文字列を小

続きを読む »
set

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

set::end()は、C++の標準ライブラリで提供されるstd::setコンテナのメンバー関数で、コンテナの末尾の次を指すイテレータを返します。 このイテレータは実際の要素を指しておらず、範囲外を示す特殊な位置です。 主にループや範囲操作

続きを読む »
文字列

[C++] string配列から文字列を検索する方法

C++でstring配列から特定の文字列を検索するには、標準ライブラリのアルゴリズムを活用する方法が一般的です。 例えば、std::findを使用すると、配列内の要素を効率的に検索できます。 std::findは#include <a

続きを読む »
条件分岐

[C++] switch-case文の使い方を初心者向けに解説

C++のswitch-case文は、特定の変数の値に応じて異なる処理を実行するための制御構文です。 変数の値を評価し、それに一致するcaseラベルの処理を実行します。 基本構文は「switch(変数) { case 値1: 処理; brea

続きを読む »
set

[C++] set::insert()の使い方 – セットに新しいキー(値)を追加する

C++のset::insert()は、std::setコンテナに新しい要素を追加するためのメンバ関数です。 この関数は、要素が既にセット内に存在しない場合にのみ挿入を行います。 挿入が成功した場合はstd::pairを返し、firstは挿入

続きを読む »
Back to top button