我可以使用以下语法:
std::map<int,std::list<int>> mAllData;
其中Key Value(int)将是数据的ID,并且所述数据可以具有多种类型,因此将所有数据存储在所述键值中。我正在尝试使用它。
答案 0 :(得分:27)
std::map<int,std::list<int>> my_map;
my_map[10].push_back(10000);
my_map[10].push_back(20000);
my_map[10].push_back(40000);
您的编译器可能不支持两个右侧的尖括号彼此相邻,因此您可能需要std::map<int,std::list<int> > my_map
。
使用C ++ 11 my_map
可以更有效地初始化:
std::map<int,std::list<int>> my_map {{10, {10000,20000,40000}}};
另外,如果您只想要一种方法来存储每个键的多个值,则可以使用std :: multimap。
std::multimap<int,int> my_map;
my_map.insert(std::make_pair(10,10000));
my_map.insert(std::make_pair(10,20000));
在C ++ 11中可以这样写:
std::multimap<int,int> my_map {{10,10000},{10,20000}};