C++ 异常:std::bad_alloc, 内存不够了,如何减少代码内存?

对于非嵌入式开发中,空间复杂度相比于时间复杂度确实显得没那么重要,能用数组的都可以尽量避免使用链表,这样减少了代码复杂度,减少了时间复杂度。但是对于一些算法题,对内存有要求的就会出现问题。

正如标题所说的,出现bad_alloc异常,一查就知道原来是内存出现了问题。

我首先想到是会不会是堆栈溢出,但是很快被我否决,因为代码中我并没有使用递归,也最多就三层函数调用。于是我就查看自己定义的变量。

哈哈,为了快点完成代码,我存储信息都是用vector来存储的,可以看到,是十分简单粗暴了。看来问题大概就是出在这了。能怎么办,只能修改基础的数据结构了。修改定义的数据类型是最痛苦的,相当于要大改整个代码,还要重新debug。这中间我大概花了5、6个小时修改代码。从修改数据类型、修改函数代码、到最后debug成功。这里警醒一下,数据类型的定义在一开始就要想清楚,所有面对的问题对时间复杂度和空间复杂度的要求。自己定义的数据结构有问题,再修改的话,那也太费力不讨好了,太悲惨了。以此记录一下这两天操蛋的操作。

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值