【发布时间】:2014-12-29 10:21:44
【问题描述】:
我需要将我的数据保存在关联表中。比如:
typedef std::map< point, std::list<h_stat> > hm;
但是 STL 容器没有现成的序列化方法。这是一个非常悲伤的消息。 我认为,将 boost 库链接到我的小项目不是一个好主意。
我在 Windows 上编程。也许,windows.h 或 MFC 是否具有关联表类,它具有来自盒子的序列化方法?或者网上有没有其他好的C++容器?
提前谢谢你。
【问题讨论】:
-
MFC 的
CMap确实支持序列化。如果我必须在 MFC 和标准库 + Boost 之间进行选择,我更喜欢后者。 -
另外一点:看起来您的
std::map<point, std::list<h_stat>>几乎等同于std::multimap<point, h_stat>。不过,根据您的使用方式,multimap可能会更干净。 -
列表按与点的距离 h_stat.point 排序。我去看看,是不是multimap支持一个sorted_insert方法。
-
如果您在两个字段上都进行排序,那么您可能需要更多类似的内容:
std::set<std::pair<point, h_stat>>。 -
一方面h_stat有很多,列表中的第一个h_stat是最好的。
标签: c++ map stl hashmap associative-array