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不,你没有。您需要单击答案顶部的绿色勾选标记。杰基恩:呃,不,你没有。至少,你的选票不会显示给任何人,因为你没有足够的声誉;你能做的就是“接受”答案。单击“向上/向下投票”按钮下的灰色勾号。这将变为绿色,并将答案标记为“已接受”