如果我是C ++我创建了map<int, vec<double>>
类型的STL地图,那么存储在连续放置在内存中的不同键下的向量是什么?
答案 0 :(得分:14)
从技术上讲,这将取决于map的实现,但一般来说,地图是作为树实现的,因此由于树数据结构的性质,存储在内存中不是连续的。
答案 1 :(得分:8)
号 *
地图动态根据需要分配元素。因此,每个vector
可以放在内存中的任何位置(并且可以随时间移动)。
还要记住,vector
本身的元素存储也是动态分配的。所以,即使你刚刚创建了一个直接的std::vector<double> my_vectors[10]
,各个向量之间的元素也不会是连续的。
*可以想象一个实现可以从支持数组的存储中分配,但是你无法依赖这种行为。所以最好假设“不”。