什么样的收集方法会存储一对(键和值),其中键不是唯一的(从技术上讲,我认为这不会使它成为键)?

在我的程序中的某个地方,我有:

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

然后我将使用这个结构将对象存储在一个 vector 中。
 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);

这基本上就是我想在 vector 中存储对象的方式。我的问题是,如果我要存储一百个 KeyPair,我应该在循环中进行,然后从存储中读取 KeyPair,然后将其推回 vector 。

如果我必须存储这些 key 对怎么办:
 KEY WINDOW
 1   Window
 0   Window2
 1   WindowC
 3   Windowfoo
 1   Window
 and so on...

我无法将它存储在 map 中,因为您必须拥有一个唯一的 key 。我拥有的 KeyPairs 的键不是唯一的。有什么建议吗?

最佳答案

multimap<>

10-08 02:26