【发布时间】:2015-12-05 23:17:36
【问题描述】:
例如,我有std::vector<std::string>,vector 和string 的分配器如何协同工作?
假设vector 的分配器分配了一块内存ChunkVec,那么string 的分配器是否在ChunkVec 内部分配内存,以便为每个string 分配的内存总和为ChunkVec?还是string 的分配器在ChunkVec 之外分配内存?
其他嵌套容器的答案是否相同?
C++和C++11有区别吗?
【问题讨论】:
-
你在找this
-
您可以简单地遍历向量,打印迭代器当前指向的位置的地址,然后您可以将您的字符串元素分解为 C 字符串(参见 here)并分析两者的内存布局。由于 C++0x,std::vector 也必须将其元素存储在 continuous manner 中,因此应该很容易看到什么在哪里。
标签: c++ c++11 memory-management