C++ 如何为以下容器赋值?

C++ 如何为以下容器赋值?,c++,dictionary,stl,C++,Dictionary,Stl,有人知道如何初始化以下容器吗? 该键是固定的,应根据该键访问以下两列信息,并应在迭代过程中进行更新: 有人能告诉我如何访问以下映射容器中的可变大小列吗 map<unsigned int, vector<vector<unsigned int>> > polyMap; 0 0 20 1 30

有人知道如何初始化以下容器吗? 该键是固定的,应根据该键访问以下两列信息,并应在迭代过程中进行更新:

有人能告诉我如何访问以下映射容器中的可变大小列吗

map<unsigned int, vector<vector<unsigned int>> > polyMap;



0                0                   20
                 1                   30 
                 2                   40
                 .                    . 
              face(n)           some angles

2                0                   20
                 1                   30 
                 .                   .
              face(m)           some angles

.                .                      .
.                .                      .
.                .                      .
.                .                      .
(`k vertex) (curesponding faces) (and angles)`
map-polyMap;
0                0                   20
1                   30 
2                   40
.                    . 
面(n)某些角度
2                0                   20
1                   30 
.                   .
面(m)某些角度
.                .                      .
.                .                      .
.                .                      .
.                .                      .
(`k顶点)(对应面)(和角度)`
大家好,我的问题似乎不完整:问题是这样的,我有顶点编号(uniq=key)和该顶点周围的面以及相应的角度:下面显示了一个示例


您能告诉我是否可以为上述目的制作问题中所示的地图容器吗?

您可能想要这样的东西:

#include <map>
#include <vector>
#include <assert.h>

using namespace std;

int main()
{
  // Declare initialized polyMap
  map<unsigned int, vector<vector<unsigned int>> > polyMap
  {
    { 11,
      {
        { 1,2 }, { 3,4 }
      }
    },

    { 22,
      {
        { 5,6 }, { 7,8 }
      }
    }
  };

  // add another element dynamically
  polyMap.insert(pair<int, vector<vector<unsigned int>>>(
    { 33,
      {
        { 9, 10 },{ 11, 12 }
      }
    }
    ));


  // check expected outcome for some values 
  assert(polyMap[11][0][0] == 1);
  assert(polyMap[11][0][1] == 2);
  assert(polyMap[22][1][1] == 8);
  assert(polyMap[33][1][1] == 12);
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
//声明初始化的polyMap
映射多边形映射
{
{ 11,
{
{ 1,2 }, { 3,4 }
}
},
{ 22,
{
{ 5,6 }, { 7,8 }
}
}
};
//动态添加另一个元素
polyMap.insert(成对)(
{ 33,
{
{ 9, 10 },{ 11, 12 }
}
}
));
//检查某些值的预期结果
断言(polyMap[11][0][0]==1);
断言(polyMap[11][0][1]==2);
断言(polyMap[22][1][1]==8);
断言(polyMap[33][1][1]==12);
}

初始化?什么意思?如果您想知道其他需要告诉的事情,这将是默认初始化的。访问列?您尝试了什么?它是如何失败的?
。。。多边形映射{key1,{1,2},{3,4}}},{key2,{5,6},{7,8}}}@pergy:不应该。您需要
pm[0]。调整大小(1);pm[0][0]。推回(…)为什么使用这样的数据结构,你不明白吗?是的,我已经编辑了它…这看起来很令人满意的结果。。。非常感谢@MichaelWalz@Jackyone如果你觉得这个答案有用,请投票/接受它,让其他人知道它有用。@Jackyone不,你没有。您需要单击答案顶部的绿色勾选标记。杰基恩:呃,不,你没有。至少,你的选票不会显示给任何人,因为你没有足够的声誉;你能做的就是“接受”答案。单击“向上/向下投票”按钮下的灰色勾号。这将变为绿色,并将答案标记为“已接受”