【发布时间】:2011-04-07 18:02:43
【问题描述】:
我想将指针映射到整数以进行序列化。指针可能是不同的类型,并且可能指向可能使用多重继承的多态对象。我需要查询地图以了解指针是否存储在其中,如果是,那么关联的整数值是多少。
正确的做法是什么?
我想到的map<void*, int> 的简单方法行不通,因为operator < 没有为任意指针定义。或者这不是常见系统的问题吗?
另一种解决方案是使用vector<void*>。但这需要循环存储在其中的所有指针,我不确定转换为void * 是否不会破坏使用继承的对象的operator ==。
【问题讨论】:
-
“我认为不会工作,因为运算符
-
您考虑过使用库吗?示例:s11.net 或 boost.serialization
-
是的,我考虑过使用 boost::serialization,但它需要一些调整才能用于我的数据。
-
如果你想要效率,你可以看看 boost::unordored_map 我认为它应该更好,但我还没有看。