terminate called after throwing an instance of 'std::bad_alloc'

这个错误,网上搜索到的资料大多是指向内存不足或者内存碎片问题,如下链接

http://bbs.csdn.net/topics/330000462

http://stackoverflow.com/questions/15671255/c-terminate-called-after-throwing-an-instance-of-stdbad-alloc

http://qt-project.org/forums/viewthread/8751

我在编写一个并行多边形合并的算法时遇到该问题,导致MPI程序崩溃,反复查看内存占用,没发现内存不足的问题。

再次查看各个vector,调用swap释放,再反复查看Geometry以及Feature等的内存释放问题,没发现问题。

最后发现原因是一个非常低级的问题,vector访问越界,真是无语。。。

原文地址:https://www.cnblogs.com/yeahgis/p/3256202.html