矢量地图C++

smi*_*dha 0 c++ map

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

Ton*_*ion 14

从技术上讲,这将取决于map的实现,但通常,地图实现为树,因此由于树数据结构的性质,存储在内存中不连续.

  • 我不认为你可以用除了平衡二叉树以外的任何东西来实现满足标准中复杂性约束的`map`. (2认同)

Oli*_*rth 8

没有.*

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

还要记住,vector自身内的元素存储也是动态分配的.因此,即使您刚刚创建了一个直接std::vector<double> my_vectors[10]的元素,这些元素也不会在各个向量之间连续.

*可以想象一个实现可以从支持数组的存储中进行分配,但是您无法依赖此行为.所以最好假设"不".