c++,stl中map容器插入元素报异常的场景之一
代码bug解决:
遇到一个往map中插入元素报异常的问题,问题已解决故无截图。
场景:
map容器的insert函数在使用时抛出异常,不是插入失败而是插入报异常。
原因:
插入到map中的数据的数据结构被改变了,导致map中容纳的数据结构和实际上插入的数据结构不相同,虽然数据类型的标识符相同,但实际可容纳的数据和插入的不同,导致了插入报出异常。
分析:
1、出现“插入的数据和map中容纳的数据的数据结构不相同”这种情况的原因是,数据定义的动态库,和map容器定义的动态库,没有一起被编译,
2、数据被定义的文件修改和编译以后,没有同步修改定义map的cpp,或者修改了但是没有被编译,导致生成的动态库中,出现了“一种数据两种数据结构”的情况,
3、对map的insert函数来说,数据的类型是一样的,但实际插入的时候数据结构是不一样的,导致插入的时候报出异常。
解决方法:
将定义变量的文件和其容器定义的文件一股脑的全部重新编译,使所有动态库中的数据一致,问题解决。