在地图C ++中使用List

时间:2011-11-19 07:22:43

标签: c++

我可以使用以下语法:

 std::map<int,std::list<int>> mAllData;

其中Key Value(int)将是数据的ID,并且所述数据可以具有多种类型,因此将所有数据存储在所述键值中。我正在尝试使用它。

1 个答案:

答案 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}};