さまざまなコンピュータ言語で利用できる辞書と呼ばれるデータ構造がいくつかあります。キーと値に従ってデータを保存する、より高速なデータ構造の特別な形式が辞書です。キーと値のペアをそこに保持するため、特定のコンポーネントをキーによってほぼリアルタイムで迅速に検索できます。辞書のようなデータ構造は、C STL 言語標準に含まれています。このデータ構造は「map」と呼ばれます。 map は、任意の型のキーと値のペアを生成します (C を使用しているため、コンパイル前に型を定義する必要があります)。このセクションでは、C を使用して値に基づいて辞書エントリを並べ替える方法を見ていきます。
まず、地図データ構造がどのように定義されているかを見てみましょう。これらの内部テンプレートのうち 2 つが必要です。必要なライブラリと構文を以下に示します。 -
マップデータ構造を定義するための構文
リーリー
この例でマップ データ構造を使用するには、「map」ライブラリをインポートする必要があります。これにはタイプ 1 とタイプ 2 のデータが必要です。 Type1 はキー パラメーターのデータ型を表し、type2 は値の型を表します。マップ タイプ クラスから派生したオブジェクトは、mapVariable と呼ばれます。次に、これらの重要な要素に基づいてマップを編成する方法を検討してみましょう。
ペアのベクトルを使用する
このアイデアでは、キーと値のペアのベクトル (C STL から取得される別の要素である動的配列) を作成するだけです。次に、比較関数を作成して並べ替えます。その後、コンテンツは並べ替えられた形式でマップに再度保存されます。
###アルゴリズム###
マップ M を入力として取得します
キーと値のペアを格納する動的配列 A を定義します
M のキーと値のペア p ごとに、-
を実行します。
A-
に p を挿入
######仕上げる######
A をキーで並べ替えます
空のマップ newMap を作成します
A の p の各ペアについて -
newMap を p-
に挿入
######仕上げる######
新しいマップに戻る
###例###
リーリー
###出力###
リーリー
すでにソートが完了しており、最終結果をマップに保存すると、ソートの前後で違いは見られません。これは、マップのデータ構造では、ほとんどの場合、ソートされたキーの形式でデータが保存されるためです。ここでは、ベクトルを使用して値に基づいて並べ替えます。ベクトルから直接出力すると、順序がわかります。 -
ペアのセットを使用する
別のタイプのデータ構造であるコレクションを使用して、マッピング データ構造内のキーと値のペアを並べ替えることができます。データはコレクション データ構造内で順序付けられます。したがって、コレクションに要素を追加した後、再度並べ替える必要はありません。より深く理解するために、アルゴリズムを見てみましょう。 -
###アルゴリズム###
マップ M を入力として取得します
キーと値のペアを保存するコレクション S を定義します
M のキーと値のペア p ごとに、
を実行します。
S
に p を挿入
-
######仕上げる######
空のマップ newMap を作成します
S の p -- の各ペアについて
newMap を p-
に挿入
######仕上げる######
新しいマップに戻る-
###例###
リーリー
###出力###
リーリー
###結論は###
この記事では、辞書データ構造 (C ではマップと呼ばれます) を並べ替える方法と、値で並べ替える 2 つの異なる方法について説明しました。マップはハッシュ マップであるため、そのキーのデータはハッシュ アルゴリズムを使用して保存されます。キーは異なりますが、異なるキーの値は同じである可能性があります。セットとベクトルのソートを使用します。ベクトルとセットの両方がペアリング情報を保持しており、それらをソートします。各ペアは 2 つの異なる方法で並べ替えることができます。値のタイプが 2 番目のタイプで、キーのタイプが 1 番目です。 -
以上が辞書を値でソートする C++ プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。