3

エントリが次のようなテーブルがあります

Row - Column1 - Column2 - Column3 Column4

 1     0X0A      1          2      A
 2     0X0B      2          2      B
 3     0x0C      3          2      C

ここで、行を取得するためのキーとして列1または列2を使用できるように、マップを使用したいと思います。これを実現するには、どのようなマップを使用する必要がありますか?

(注-表は説明のためのものであり、正確な要件ではありません)マルチマップを使用することを考えましたが、それでは問題は解決しません。

4

3 に答える 3

7

boostのマルチインデックス コンテナーを試してください。

于 2012-06-18T16:30:17.443 に答える
1

pair最初のメンバーまたは 2 番目のメンバーのいずれかが一致するが、必ずしも両方が一致するとは限らない場合に等しいことを示すカスタム コンパレータを使用して、 に似たクラスを定義します。その後、そのクラスをキーの型として使用できます。最初のメンバーのみが初期化されたキーが残りのデータのために 2 番目のメンバーに時折一致することを避けるために、コンストラクターでデフォルト値として使用するために、データで決して使用されない各メンバーに特定の値が必要になる可能性があります。

于 2012-06-18T16:35:46.423 に答える
0

1 つのマップを使用して列 1 から行にマップし、別のマップを使用して列 2 から行にマップすることができます。必要な列の数だけ繰り返します

于 2012-06-18T16:32:21.597 に答える