C++集合:如何创建类似结构的地图

Owe*_*wen 4 c++ collections maps vector data-structures

什么样的收集方法会存储一对(密钥和值),其中密钥不是唯一的(从技术上来说,这不是我认为的关键)?

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

typedef struct 
{
    int nKey;
    string strFormType;
} KeyPair;
Run Code Online (Sandbox Code Playgroud)

然后我将使用此结构将对象存储在向量中.

 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);      
Run Code Online (Sandbox Code Playgroud)

这基本上是我想要在向量中存储对象的方式.我的问题是,如果我要像一百个KeyPairs一样存储,我应该在一个循环中执行它,然后从存储中读取KeyPairs然后将它向后推送到矢量.

如果我必须存储这些KeyPairs怎么办:

 KEY WINDOW
 1   Window 
 0   Window2
 1   WindowC
 3   Windowfoo
 1   Window
 and so on... 
Run Code Online (Sandbox Code Playgroud)

我无法将其存储在地图中,因为您必须拥有唯一的密钥.我所拥有的KeyPairs的键并不是唯一的.有什么建议吗?