我正在尝试动态地将元素添加到地图中包含的矢量中,以存储映射到不同ID的多个“粒子”对象数组。我是语言的新手,所以我很难理解这是否只能用迭代器来完成?在这种情况下,感觉有点矫枉过正。是否可以直接访问地图中的矢量?因为我可以按键访问地图元素,并且因为每个键只有一个向量,所以看起来它应该是可能的。我没有确切的代码作为示例,但它看起来像这样:
int currentId = 1;
map <int, vector<Particle> > particleMap;
Particle p;
particleMap[currentId] <access to vector somehow here?> push_back(p);
我确信我在这里缺少一些更大的概念,但我发现自己需要这种类型的数据结构,所以知道访问这些“表格”的正确方法会很棒。
答案 0 :(得分:15)
particleMap[currentId].push_back(p);
工作得很好。
每个ID只有一个vector
;这就是你所指的particleMap[currentId]
。然后你就像继续编写myVector.push_back(p)
一样继续表达。