2

QPair と QString を格納したい、つまり、インデックスごとに 3 つの値 (int、int、String) を格納したいと考えています。この目的のために、QString がキーとして機能し、QPair が値として機能する QMap を選択しました。

これまでのところ、QMap を反復処理しただけですが、キーの 1 つ (QString) を検索するときに問題が発生します。返された文字列を使用myQMap.key(myQPair)すると空白になります(必要な文字列が空白ではないことはわかっています)。

問題は、QPair を引数として使用するだけで QString を検索するにはどうすればよいかということです。QPair はキーとして機能しますか? 私が理解している限り、それはうまくいきません。

4

3 に答える 3

2

両方の方法で機能するデータ構造のようなマップが必要なようです。as キーを使用して を検索したい場合、および as キーをQPair<int,int>使用してを検索したい場合。QStringQStringQPair<int,int>

この機能を提供する Qt のクラスはありません。したがって、これを自分で実装する必要がある (多くの方法があります) か、boost::bimapを使用できます。

于 2012-08-16T07:01:39.013 に答える
1

std::map同様のオブジェクトは値をキーとして使用できず、その目的を無効にします。

必要なのはboost::bimap( docs ) です。

于 2012-08-16T07:01:19.197 に答える
0

2 つのマップを作成して問題を解決しました。

于 2013-06-19T15:04:33.297 に答える