矢量地图C ++

时间:2011-09-13 18:41:30

标签: c++ map

如果我是C ++我创建了map<int, vec<double>>类型的STL地图,那么存储在连续放置在内存中的不同键下的向量是什么?

2 个答案:

答案 0 :(得分:14)

从技术上讲,这将取决于map的实现,但一般来说,地图是作为树实现的,因此由于树数据结构的性质,存储在内存中不是连续的。

答案 1 :(得分:8)

*

地图动态根据需要分配元素。因此,每个vector可以放在内存中的任何位置(并且可以随时间移动)。

还要记住,vector本身的元素存储也是动态分配的。所以,即使你刚刚创建了一个直接的std::vector<double> my_vectors[10],各个向量之间的元素也不会是连续的。

*可以想象一个实现可以从支持数组的存储中分配,但是你无法依赖这种行为。所以最好假设“不”。