从文件中读取存入vector的问题
有一个问题,我定义了一个类比如叫VIP,类中有一个vector<string>对象用来存储VIP所订购的商品,所以每个VIP变量的vector<string>对象内存储的...
有一个问题,我定义了一个类比如叫VIP,类中有一个vector<string>对象用来存储VIP所订购的商品,所以每个VIP变量的vector<string>对象内存储的数据的个数都不一样。现在我把这些个VIP对象存入文件了,接下去我要读取粗来,那么我应该怎么读取才能把所有数据正确的读出来??就是如何实现把数据都读出来,并都正确地放入vector。
展开
2个回答
展开全部
这实际上就是对象序列化的问题了。
在C++中没有非常方便的序列化方式,一般都需要你自己手工来控制对象的存储或构建过程。
像你这个问题,你只能自己在这个类中写存储过程代码了,比如使用文本文件,第一行写入vector的大小,后面每行写入一个string。然后反序列化的时候先读取第一个数字,然后读取后面这么多个string,最后再构建vector,最终构建完整个对象。
没什么太便捷的手段,都要自己手工编写相关代码。虽然C++有一些现成的序列化框架可用,但由于C++本身的语言特性问题,这些框架用起来也都不够方便,而且也只能提供部分辅助功能罢了。和Python等其它语言那种在底层以及基础数据类型上就支持序列化的语言比起来,C++的那些序列化框架真是难用到极点。
没办法,这是C++语言特性决定的。强静态、弱动态的C++搞这种事情是会比较费力。你就把它当作读写文件的练习吧。
在C++中没有非常方便的序列化方式,一般都需要你自己手工来控制对象的存储或构建过程。
像你这个问题,你只能自己在这个类中写存储过程代码了,比如使用文本文件,第一行写入vector的大小,后面每行写入一个string。然后反序列化的时候先读取第一个数字,然后读取后面这么多个string,最后再构建vector,最终构建完整个对象。
没什么太便捷的手段,都要自己手工编写相关代码。虽然C++有一些现成的序列化框架可用,但由于C++本身的语言特性问题,这些框架用起来也都不够方便,而且也只能提供部分辅助功能罢了。和Python等其它语言那种在底层以及基础数据类型上就支持序列化的语言比起来,C++的那些序列化框架真是难用到极点。
没办法,这是C++语言特性决定的。强静态、弱动态的C++搞这种事情是会比较费力。你就把它当作读写文件的练习吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
存入什么文件? 这种一般应该用数据库吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询