2010-11-25 15 views
4

キーが一意でないところにペア(キーと値)を保存するコレクション方法は、技術的には私の考えではありません。私が持っている私のプログラムでC++ Collections:構造体のようなマップを作成する方法

どこか:

typedef struct 
{ 
    int nKey; 
    string strFormType; 
} KeyPair; 

その後、私は、この構造体を使用して、ベクター内のオブジェクトを格納します。

vector<KeyPair> vKeyList; 
KeyPair MenuOne; 
MenuOne.nKey = 1; 
MenuOne.strFormType = "Window"; 
vKeyList.push_back(MenuOne);  

MenuOne.nKey = 0; 
MenuOne.strFormType = "Window2"; 
vKeyList.push_back(MenuOne); 

MenuOne.nKey = 1; 
MenuOne.strFormType = "WindowC"; 
vKeyList.push_back(MenuOne);  

これは基本的にオブジェクトをベクトルに格納する方法です。私の問題は、私が100のKeyPairsのように保管するならば、私はループでそれをやっているだけで、ストレージからKeyPairsを読み込み、ベクトルをpush_backする必要があります。あなたは一意のキーを持っている必要があるため

KEY WINDOW 
1 Window 
0 Window2 
1 WindowC 
3 Windowfoo 
1 Window 
and so on... 

私はマップに格納することができませんでした:私はこれらの鍵ペアを保存する必要がある場合はどう

。私が持っているKeyPairsのキーはユニークではありません。なにか提案を?イグナシオバスケス - エイブラムスなどmultimap`

+0

使用は '提案、またはソートベクトルを維持し、' lower_bound'を使用しています。 – dalle

答えて

関連する問題