列挙型

[C++] enumの使い方と基本的な活用例

C++のenumは、関連する定数をグループ化するための列挙型を定義する機能です。 enumを使うと、コードの可読性が向上し、定数の管理が容易になります。 基本的な構文はenum EnumName { VALUE1, VALUE2, ...

続きを読む »
列挙型

[C++] enum classの基本的な使い方と利点

C++のenum classは、列挙型を定義するための機能で、通常のenumよりも型安全性が高いのが特徴です。 enum classでは、列挙子がスコープ内に限定されるため、名前の衝突を防げます。 定義はenum class Color {

続きを読む »
列挙型

[C++] enum classの要素数を取得する方法

C++でenum classの要素数を取得するには、通常は列挙子の数を手動で数えるか、メタプログラミングを用います。 簡易的な方法として、最後の列挙子に「要素数」を示すダミー値を追加する方法があります。 例えば、enum class Col

続きを読む »
数値型

[C++] float型とdouble型の違い

C++におけるfloat型とdouble型の主な違いは、精度とメモリ使用量です。 float型は単精度浮動小数点数で、通常32ビットを使用し、約7桁の有効数字を保持します。 一方、double型は倍精度浮動小数点数で、通常64ビットを使用し

続きを読む »
数値型

[C++] double型の範囲と精度について

C++のdouble型は、倍精度浮動小数点数を表すデータ型で、通常64ビットを使用します。 IEEE 754規格に基づき、範囲は約\(-1.7 \times 10^{308}\)から\(1.7 \times 10^{308}\)まで、精度は

続きを読む »
数値型

[C++] double型の最大値を取得する方法

C++でdouble型の最大値を取得するには、標準ライブラリの<limits>ヘッダを使用します。 具体的には、std::numeric_limits<double>::max()を呼び出すことで取得できます。 この

続きを読む »
multimap

[C++] multisetとmultimapの違いについて解説

C++のmultisetとmultimapはどちらも重複要素を許容するコンテナですが、用途と構造が異なります。 multisetはキーのみを格納する集合で、要素は自動的に昇順にソートされます。 一方、multimapはキーと値のペアを格納す

続きを読む »
multimap

[C++] multimapの現在の要素数を取得する方法

C++のstd::multimapで現在の要素数を取得するには、size()メンバー関数を使用します。 この関数は、マルチマップに格納されている全要素の数を返します。 例えば、myMultimap.size()と記述することで、myMult

続きを読む »
multimap

[C++] multimapにキーと値を追加する方法

C++のstd::multimapにキーと値を追加するには、insertメソッドを使用します。 insertはペアstd::pairを引数として受け取り、同じキーに複数の値を格納することが可能です。 例えば、multimap.insert(

続きを読む »
multimap

[C++] multimapの基本的な使い方

C++のmultimapは、キーと値のペアを格納する連想コンテナで、同じキーに複数の値を関連付けることができます。 キーは自動的に昇順にソートされます。 std::multimapはstd::mapと似ていますが、キーの重複を許容する点が異

続きを読む »
multimap

[C++] multimapから任意の要素を削除する方法

C++のstd::multimapから任意の要素を削除するには、まず削除したい要素を特定する必要があります。 multimapはキーが重複可能なため、find関数で最初の一致する要素を取得し、erase関数で削除します。 特定のキーに関連付

続きを読む »
multimap

[C++] multimapからキーや値で検索して要素を取得する方法

C++のstd::multimapでは、キーや値で要素を検索する方法があります。 キーで検索する場合、equal_rangeやfindを使用します。 equal_rangeは指定したキーに対応するすべての要素の範囲を返し、findは最初の一

続きを読む »
multimap

[C++] multimapを個別にソートしなくていい理由を解説

C++のstd::multimapは、キーに基づいて自動的にソートされた状態を維持するデータ構造です。 内部的には赤黒木(balanced binary search tree)を使用しており、要素が挿入されるたびにキーの順序に従って配置さ

続きを読む »
map

[C++] std::mapで要素の追加時に重複チェックを行う方法

C++のstd::mapはキーが一意であることを保証するため、要素を追加する際に自動的に重複チェックが行われます。 insertメソッドを使用すると、要素が追加されたかどうかを確認できます。 このメソッドはstd::pairを返し、firs

続きを読む »
map

[C++] std::mapに要素を追加する方法

C++のstd::mapに要素を追加するには、insertメソッドまたは[]演算子を使用します。 insertはペアを挿入し、要素が既に存在する場合は挿入をスキップします。 一方、[]演算子はキーが存在しない場合に新しい要素を作成し、値を代

続きを読む »
map

[C++] std::mapから全要素(キーと値)を取得する方法

C++のstd::mapから全要素(キーと値)を取得するには、イテレータを使用して要素を順にアクセスします。 std::mapはキーでソートされた連想コンテナであり、begin()からend()までの範囲をループすることで全要素を取得できま

続きを読む »
map

[C++] std::mapから任意の要素を削除する方法

C++のstd::mapから任意の要素を削除するには、eraseメソッドを使用します。 削除したい要素のキーを指定することで、その要素を効率的に削除できます。 例えば、map.erase(key)とすることで、指定したキーに対応する要素が削

続きを読む »
map

[C++] std::mapで検索処理を高速化する方法

C++のstd::mapは内部で赤黒木を使用しており、要素の検索は平均・最悪ともに計算量が\(O(\log n)\)です。 検索処理をさらに高速化するには、以下の方法が考えられます。 1つ目は、キーが連続する場合にstd::mapではなくs

続きを読む »
map

[C++] mapからキーや値で要素を検索する方法

C++のstd::mapでキーや値を使って要素を検索する方法は以下の通りです。 キーで検索する場合、findメソッドを使用します。 例えば、map.find(key)はキーが見つかれば対応するイテレータを返し、見つからなければmap.end

続きを読む »
Back to top button