对于非嵌入式开发中,空间复杂度相比于时间复杂度确实显得没那么重要,能用数组的都可以尽量避免使用链表,这样减少了代码复杂度,减少了时间复杂度。但是对于一些算法题,对内存有要求的就会出现问题。
正如标题所说的,出现bad_alloc异常,一查就知道原来是内存出现了问题。
我首先想到是会不会是堆栈溢出,但是很快被我否决,因为代码中我并没有使用递归,也最多就三层函数调用。于是我就查看自己定义的变量。
哈哈,为了快点完成代码,我存储信息都是用vector来存储的,可以看到,是十分简单粗暴了。看来问题大概就是出在这了。能怎么办,只能修改基础的数据结构了。修改定义的数据类型是最痛苦的,相当于要大改整个代码,还要重新debug。这中间我大概花了5、6个小时修改代码。从修改数据类型、修改函数代码、到最后debug成功。这里警醒一下,数据类型的定义在一开始就要想清楚,所有面对的问题对时间复杂度和空间复杂度的要求。自己定义的数据结构有问题,再修改的话,那也太费力不讨好了,太悲惨了。以此记录一下这两天操蛋的操作。
。