【发布时间】:2012-10-07 18:08:26
【问题描述】:
如何将std::map 输出到二进制文件?
地图声明如下所示。
map<string, Account *> accounts;
ofstream os(outFileName.c_str());
os.write( );
我需要知道在write() 函数中添加什么才能让它按照我想要的方式工作。我需要一个接一个地输出Account 类,还是将其输出为map 是否安全?
【问题讨论】:
-
@Jeff:你不能只是在代码块中随机放置缩写,然后称之为编辑。
-
我不确定您对
Account*的意图是什么。如果你想让 this 成为一个指针,为什么不使用 C++ 的智能指针呢?或者,如果您打算将此作为一个数组,那么std::vector应该可以解决问题。 -
@chrisaycock:这个问题没有标记为 c++11,也没有提到它,所以可以安全地假设智能指针不可用。它几乎可以肯定只是一个指向单个对象的标准指针。
-
@Wug C++03 有
std::auto_ptr。 -
@chrisaycock:你不会希望在地图中有 auto_ptr。