我仍在努力了解boost属性贴图的以下方面:
boost属性映射实际上是存储数据,还是存储在另一个数据结构中的数据,boost属性映射只是访问这些数据的一种方式?换句话说,无论通过它可以访问多少数据,属性映射的空间复杂度是否都是常量?
如果是这种情况,为什么它具有put函数?
答案 0 :(得分:0)
空间复杂性绝对不是一成不变的。奇迹是不可能的。您存储的数据越多,所需的空间就越多。
从我的角度来理解属性映射的最好方法是包装。您添加了一个属性 - 您的类被另一个handles
此属性的类包装。此包装类是在模板实例化期间动态生成的。我在调试器中查看了它们生成的内容。它显示了我定义的每个属性的继承层。
存储数据的确切位置隐藏在实现中。这是他们设计的一部分,也是他们想要实现的目标。这也为他们提供了以这种或那种方式实现存储的一定灵活性。