16,471
社区成员
发帖
与我相关
我的任务
分享
ofstream out("VDisk.dat");
map<DWORD, int *> outMap;
//....
out << outMap;
map<DWORD, int *> mapIn;
in >> mapIn;
// 支持对map的序列化
template<typename ContainerT>
std::ostream &operator<<(std::ostream &os, ContainerT &container)
{
os << container.size() << std::endl;
for(ContainerT::iterator iter = container.begin();
iter != container.end(); ++iter)
os << iter->first << *(iter->second) << std::endl;
return os;
}
template<typename KeyT, typename ValueT>
std::istream &operator>>(std::istream &os, std::map<KeyT, ValueT *> &container)
{
size_t n = 0;
os >> n;
for(int i = 0; i != n; ++i)
{
KeyT nKey = 0;
ValueT *iter = new ValueT;
memset(iter, 0, sizeof(ValueT));
os >> nKey >> *iter;
container.insert(std::make_pair(nKey, iter));
}
return os;
}