关于c ++:类A的boost ptr_map作为键的内存消耗和指针作为值B的向量

Memory consumption of a boost ptr_map of class A as key and vectors of pointers as value B

作为昨天发布的一个后续问题,指针指向指针向量的指针的内存消耗,我还有一个关于键类型为的boost ptr_映射的内存使用的问题,例如,类A(现在假定为int),值是某个类型指针的(指针指向)向量(再次假定为int),这是一个ptr_映射。我读过这个问题,如何估计std::map的内存使用情况?STL映射的内存消耗通常是

1
(sizeof(A) + sizeof(B) + ELEMENT_OVERHEAD) * N + CONTAINER_OVERHEAD

我的问题是这样一个设计的元素开销有多大,相对于

1
sizeof(A) + sizeof(B)

假设类型A和B(这里假设为int,而B是指向int的指针向量的指针),我想,即使是对于通常的STL映射的答案也会有所帮助。另外,我想知道如果可能的话,如果a更复杂的话,事情是如何变化的,我猜元素开销也会随着a的复杂性而增长?元素开销是否由A和B大小之和的某个分数所限定?我担心的是,如果元素开销很大一部分不是真正有界的,那么使用映射的整个点就不再有吸引力了。


费尔南德斯说,在AS Martinho Comment is for each item量图等。

图overheads for some items of后一般implementations标准探究:
P></

  • 4.4.3顾客:3分和一个类型的成员节点for each
  • 其中+ + + +其中:2008年、2010年三分球和字符串成员节点2 for each
  • 3分:1 stlport 5.2.1 for each bool和成员节点

4.4.3顾客,其中2008年+ + +,其中2010年和stlport 5.2.1使用红-黑树映射到实施"订单。P></