我有一个关于STL类和分配器的问题,这些问题似乎不容易在网上找到.有谁知道在嵌套的STL类中使用了哪个分配器?例如:
typedef std::vector<int> myvect;
Run Code Online (Sandbox Code Playgroud)
//按照后续回复/评论的指示编辑了以下行
typedef std::map<int, myvect, std::less<int>, A> mymap; //uses my custom allocator for map creation
Run Code Online (Sandbox Code Playgroud)
让我们调用默认的分配器D,并假设我有一个自定义分配器A.
如果我做了以下事情将会发生什么:
创建地图:
mymap mapInstance;
Run Code Online (Sandbox Code Playgroud)现在,假设存在一个条目mapInstance[0],假设我将一个值推入向量:
mapInstance[0].push_back(999);
Run Code Online (Sandbox Code Playgroud)什么分配器用于向量的动态内存mapInstance[0]?
到目前为止,我的理解D是使用了默认分配器,但我想确认A传入映射的自定义分配器不会被使用.(据我所知,只有我使用某种嵌套分配选项才会发生这种情况.)
当然,我理解mapInstance[0]使用自定义分配器分配元数据/标头信息A.我关心的是动态内存部分,即之后的部分d_dataBegin.