c ++ push_back()在向量映射中

时间:2011-03-14 00:14:57

标签: c++ vector map

我正在尝试动态地将元素添加到地图中包含的矢量中,以存储映射到不同ID的多个“粒子”对象数组。我是语言的新手,所以我很难理解这是否只能用迭代器来完成?在这种情况下,感觉有点矫枉过正。是否可以直接访问地图中的矢量?因为我可以按键访问地图元素,并且因为每个键只有一个向量,所以看起来它应该是可能的。我没有确切的代码作为示例,但它看起来像这样:

int currentId = 1;  
map <int, vector<Particle> > particleMap;    
Particle p;  
particleMap[currentId] <access to vector somehow here?> push_back(p);

我确信我在这里缺少一些更大的概念,但我发现自己需要这种类型的数据结构,所以知道访问这些“表格”的正确方法会很棒。

1 个答案:

答案 0 :(得分:15)

particleMap[currentId].push_back(p);

工作得很好。

每个ID只有一个vector;这就是你所指的particleMap[currentId]。然后你就像继续编写myVector.push_back(p)一样继续表达。