vector存放类类型的数据,文件读写时内存占用过大

我用vector存放类里面的数据,当里面的数据才只有两个的时候内存就占用几百MB,导致程序崩溃。只录入一个数据就可以正常的运行程序。
或者把文件相关的代码注释后,也能正常运行。
求大佬看看文件的读写操作有什么问题

img

img

img

img

img

img

如有帮助,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。

估计你这个读的while有问题,一直没有结束,死循环了吧
打开你写入的文件看看大小和内容,是否正常

应该是读取失败了,需要在while中增加判断,如果失败了就返回。
while循环不建议你这么写。修改如下:

while (1)
    {
        ifs >>name >> ISBN >> number >> writer >> press >> publish_time>>publish_number >>price>>amount;
        //这里判断是否读取失败,如果不判断失败会导致死循环
        if(ifs.fail())
            break;
    }