c ++中的int和vector <int>的映射

geo*_*ano 5 c++ containers dictionary vector stdmap

我一直在和我一起工作<map>,在那里我宣布了一张地图

map <int, vector<int> > tree;
Run Code Online (Sandbox Code Playgroud)

我正在尝试为它赋值.我的目标是将多个值作为其键的元素.像这样的东西:

0=null
1=>0
2=>1,0
3=>2,1,0
4=>3,2,1,0
5=>0
Run Code Online (Sandbox Code Playgroud)

我试图像这样分配到地图但它不起作用.

tree[3]=vector<int>(2,1,0);
Run Code Online (Sandbox Code Playgroud)

你能弄清楚问题出在哪里,或者我如何创建一个兼容Python字典的函数?

编辑:<map> 以上2种分配工作方式.

编辑2:我没有使用 <map>

Dan*_*rey 6

使用C++ 11,您可以尝试:

tree[3]=vector<int>({2,1,0});
Run Code Online (Sandbox Code Playgroud)

除此之外,这个问题可以使用更多的细节和一些你已经尝试过的代码......

  • 实际上不应该明确说明类型.在赋值的RHS中,一个纯的brace-init-list也应该起作用:`tree [3] = {2,1,0};` (4认同)
  • 不,我的意思是`#include <initializer_list>`.您是否*读过*编译器为您生成的错误消息? (3认同)

Dre*_*ann 6

既然你要求C++ 03答案,那么(比C++ 11更详细)解决方案将起作用.

tree[3].push_back(2);
tree[3].push_back(1);
tree[3].push_back(0);
Run Code Online (Sandbox Code Playgroud)