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

时间:2010-11-25 07:27:49

标签: c++ data-structures collections vector maps

哪种收集方法会存储密钥不唯一的一对(密钥和值)(从技术上讲,这不是一个关键)?

在我的计划的某个地方,我有:

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);      

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

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

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

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

1 个答案:

答案 0 :(得分:11)